feat:complete admin permissions for admin side

This commit is contained in:
2026-08-19 19:20:32 +03:30
parent 29ddbe2e0f
commit 894ae6794d
3 changed files with 15 additions and 18 deletions
@@ -8,24 +8,15 @@ use Symfony\Component\HttpFoundation\Response;
class AdminPermissionMiddleware class AdminPermissionMiddleware
{ {
/** public function handle(
* Handle an incoming request. Request $request,
* Closure $next,
* @param Closure(Request): (Response) $next string $permission
*/ ): Response {
public function handle(Request $request, Closure $next, string $permission): Response
{
$admin = auth('admin')->user(); $admin = auth('admin')->user();
if (!$admin) { if (!$admin->permission?->{$permission}) {
abort(403);
}
$hasPermission = $admin->permissions()
->where('name', $permission)
->exists();
if (!$hasPermission) {
abort(403, 'شما اجازه دسترسی به این بخش را ندارید.'); abort(403, 'شما اجازه دسترسی به این بخش را ندارید.');
} }
@@ -56,7 +56,10 @@ class AdminStoreRequest extends FormRequest
], ],
'status' => ['required'], 'status' => ['required'],
'admin_view' => ['nullable', 'boolean'],
'admin_create' => ['nullable', 'boolean'],
'admin_edit' => ['nullable', 'boolean'],
'admin_delete' => ['nullable', 'boolean'],
]; ];
} }
@@ -51,7 +51,10 @@ class AdminUpdateRequest extends FormRequest
'status' => ['required'], 'status' => ['required'],
'image' => ['nullable', 'image'], 'admin_view' => ['nullable', 'boolean'],
'admin_create' => ['nullable', 'boolean'],
'admin_edit' => ['nullable', 'boolean'],
'admin_delete' => ['nullable', 'boolean'],
]; ];
} }
} }