feat: implement admin management

This commit is contained in:
2026-08-20 07:56:06 +03:30
parent 9d5e325c3f
commit b31dd1b8fb
15 changed files with 838 additions and 326 deletions
@@ -88,5 +88,37 @@ class AdminStoreRequest extends FormRequest
Rule::enum(AdminPermission::class),
],
];
}
public function withValidator($validator): void
{
$validator->after(function ($validator) {
$role = $this->input('role');
$permissions = $this->input('permissions', []);
$isSuperAdmin =
$role === \App\Enums\Admin\AdminRole::SUPERADMIN->value;
$manageAdminsPermission =
\App\Enums\Admin\AdminPermission::MANAGE_ADMINS->value;
if (
!$isSuperAdmin &&
in_array($manageAdminsPermission, $permissions)
) {
$validator->errors()->add(
'permissions',
'مدیر عادی نمی‌تواند دسترسی مدیریت مدیران را داشته باشد.'
);
}
});
}
}