]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Добавил Проверку на разрешение employee-paymentEdit
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Tue, 5 Nov 2024 14:20:39 +0000 (17:20 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Tue, 5 Nov 2024 14:20:39 +0000 (17:20 +0300)
erp24/controllers/crud/EmployeePaymentController.php
erp24/records/Admin.php
erp24/views/crud/employee-payment/view.php

index e7b0cc717c3fe9e452c2eb85ec0f564865783e70..e53eb98ad1e057965a4655aebc522ff6d989b915 100755 (executable)
@@ -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('Удаление разрешено только для записей текущего месяца и позже.');
index b6e81838a3335812cee1b938c5888e9b46339b23..df5a0e228a8c9be6376dfbd0df956e69a712e26c 100755 (executable)
@@ -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
index e9925b9f2a42e2984d5f80f87f4ccae4fac05ba6..3fb91c906b99fac8018441feaaf5b4f7f241b9b9 100755 (executable)
@@ -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;
                         }