From f48027be68657b78dc5105788349706510365724 Mon Sep 17 00:00:00 2001 From: fomichev Date: Tue, 5 Nov 2024 17:20:39 +0300 Subject: [PATCH] =?utf8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?utf8?q?=D0=9F=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D1=83=20=D0=BD=D0=B0?= =?utf8?q?=20=D1=80=D0=B0=D0=B7=D1=80=D0=B5=D1=88=D0=B5=D0=BD=D0=B8=D0=B5?= =?utf8?q?=20employee-paymentEdit?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../controllers/crud/EmployeePaymentController.php | 4 ++-- erp24/records/Admin.php | 13 +++++++++++++ erp24/views/crud/employee-payment/view.php | 4 ++-- 3 files changed, 17 insertions(+), 4 deletions(-) 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; } -- 2.39.5