From 44abdb471f26723e99e4fd43864c3dd13d68cc75 Mon Sep 17 00:00:00 2001 From: F4ilji Date: Sat, 4 Jul 2026 18:46:23 +0500 Subject: [PATCH] fix(vikon): check writability only for module dirs (sveden, abitur, vsoko) --- .../Actions/CheckAccessAction.php | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/app/Containers/VikonIntegration/Actions/CheckAccessAction.php b/app/Containers/VikonIntegration/Actions/CheckAccessAction.php index 82d25b4..c7f7e35 100644 --- a/app/Containers/VikonIntegration/Actions/CheckAccessAction.php +++ b/app/Containers/VikonIntegration/Actions/CheckAccessAction.php @@ -32,11 +32,21 @@ class CheckAccessAction ]; } - $nonWritable = $this->findNonWritable($this->publicPath); + $modulePaths = array_map( + fn($m) => $this->publicPath . '/' . $m['path'], + config('vikon.modules') + ); + + $nonWritable = []; + foreach ($modulePaths as $mp) { + if (is_dir($mp) && !is_writable($mp)) { + $nonWritable[] = str_replace(base_path() . '/', '', $mp); + } + } if (!empty($nonWritable)) { return [ 'has_access' => false, - 'error' => 'Нет прав на запись: ' . implode(', ', array_slice($nonWritable, 0, 3)), + 'error' => 'Нет прав на запись: ' . implode(', ', $nonWritable), ]; } @@ -53,6 +63,8 @@ class CheckAccessAction ]; } } +} + } private function findNonWritable(string $path, int $depth = 0): array {