From: fomichev Date: Tue, 5 Nov 2024 14:20:39 +0000 (+0300) Subject: Добавил Проверку на разрешение employee-paymentEdit X-Git-Tag: 1.6~26^2~1 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=f48027be68657b78dc5105788349706510365724;p=erp24_rep%2Fyii-erp24%2F.git Добавил Проверку на разрешение employee-paymentEdit --- diff --git a/erp24/controllers/crud/EmployeePaymentController.php b/erp24/controllers/crud/EmployeePaymentController.php index e7b0cc71..e53eb98a 100755 --- a/erp24/controllers/crud/EmployeePaymentController.php +++ b/erp24/controllers/crud/EmployeePaymentController.php @@ -142,7 +142,7 @@ class EmployeePaymentController extends Controller $admin = Yii::$app->user->identity; // Проверка на group_id и дату записи - if (!in_array($admin->group_id , [81, 20]) && date('Y-m') !== date('Y-m', strtotime($model->date))) { + if (!in_array($admin->group_id , [81, 20]) || !$admin->hasPermission('employee-paymentEdit') && date('Y-m') !== date('Y-m', strtotime($model->date))) { throw new \yii\web\ForbiddenHttpException('Редактирование разрешено только для записей текущего месяца.'); } @@ -175,7 +175,7 @@ class EmployeePaymentController extends Controller $currentMonth = date('Y-m'); // Проверка на group_id и дату записи - if (!in_array($admin->group_id , [81, 20])) { + if (!in_array($admin->group_id , [81, 20]) || !$admin->hasPermission('employee-paymentEdit')) { // Проверка, разрешено ли удаление записи текущего месяца или позже if ($recordMonth < $currentMonth) { throw new \yii\web\ForbiddenHttpException('Удаление разрешено только для записей текущего месяца и позже.'); diff --git a/erp24/records/Admin.php b/erp24/records/Admin.php index b6e81838..df5a0e22 100755 --- a/erp24/records/Admin.php +++ b/erp24/records/Admin.php @@ -729,4 +729,17 @@ class Admin extends ActiveRecord implements IdentityInterface // $_SESSION['name_group_admin'] = "Пользователь"; } + + public function hasPermission($permission) + { + + $rbacConfig = AdminGroupRbacConfig::findOne(['admin_group_id' => $this->group_id]); + if ($rbacConfig && $rbacConfig->config) { + $permissions = explode(',', $rbacConfig->config); + return in_array($permission, $permissions); + } + + return false; + } + } \ No newline at end of file diff --git a/erp24/views/crud/employee-payment/view.php b/erp24/views/crud/employee-payment/view.php index e9925b9f..3fb91c90 100755 --- a/erp24/views/crud/employee-payment/view.php +++ b/erp24/views/crud/employee-payment/view.php @@ -50,7 +50,7 @@ $this->params['breadcrumbs'][] = $this->title; 'visibleButtons' => [ 'update' => function ($model) use ($user) { // Если пользователь в группе с group_id = 81, разрешить редактирование для всех периодов - if (in_array($user->group_id , [81, 20])) { + if (in_array($user->group_id , [81, 20]) || $user->hasPermission('employee-paymentEdit')) { return true; } // Для остальных пользователей разрешено редактирование только записей текущего месяца @@ -58,7 +58,7 @@ $this->params['breadcrumbs'][] = $this->title; }, 'delete' => function ($model) use ($user) { // Если пользователь в группе с group_id = 81, разрешить удаление для всех периодов - if (in_array($user->group_id , [81, 20])) { + if (in_array($user->group_id , [81, 20]) || $user->hasPermission('employee-paymentEdit')) { return true; }