From: fomichev Date: Mon, 25 May 2026 08:03:01 +0000 (+0300) Subject: правки по дубликации при назначении прав X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=2d2cc7254681d1b77b9ce243ec918bf2a045f978;p=erp24_rep%2Fyii-erp24%2F.git правки по дубликации при назначении прав --- diff --git a/erp24/commands/AuthController.php b/erp24/commands/AuthController.php index 1d857355..eca4b2d2 100644 --- a/erp24/commands/AuthController.php +++ b/erp24/commands/AuthController.php @@ -30,7 +30,10 @@ class AuthController extends Controller * @throws \Exception */ public function actionInit() { - $isDirty = Yii::$app->cache->get("dirtyAuthSettings") ?? true; + // cache->get() возвращает false и при промахе, и когда значение явно false — различить нельзя. + // Используем exists(): если ключа нет (flush или первый запуск) — запускаем на всякий случай. + $keyExists = Yii::$app->cache->exists("dirtyAuthSettings"); + $isDirty = !$keyExists || (bool)Yii::$app->cache->get("dirtyAuthSettings"); if (!$this->force && !$isDirty) { echo "Нет изменений в настройках разрешений\n"; return 'ok'; @@ -130,9 +133,13 @@ class AuthController extends Controller ['id' => $adminGroupRbacConfig->admin_group_id - (1e+6)] ])->all() as $admin) { if ($roleOrPermission) { - $auth->assign($roleOrPermission, $admin->id); + if (!$auth->getAssignment($roleOrPermission->name, $admin->id)) { + $auth->assign($roleOrPermission, $admin->id); + } } else { - $auth->assign($permission, $admin->id); + if (!$auth->getAssignment($permission->name, $admin->id)) { + $auth->assign($permission, $admin->id); + } } } }