$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('Редактирование разрешено только для записей текущего месяца.');
}
$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('Удаление разрешено только для записей текущего месяца и позже.');
// $_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
'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;
}
// Для остальных пользователей разрешено редактирование только записей текущего месяца
},
'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;
}