35 lines
1.1 KiB
PHP
35 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Middleware;
|
|
|
|
use Closure;
|
|
use Illuminate\Http\Request;
|
|
|
|
/**
|
|
* وسيط التحقق من صلاحيات المدير (Admin Role Middleware)
|
|
*
|
|
* الغرض من الملف:
|
|
* حماية المسارات (Routes) التي لا يسمح بالدخول إليها إلا للمدراء فقط.
|
|
*
|
|
* كيفية العمل:
|
|
* 1. يفحص نوع المستخدم المخزن في رمز الـ JWT.
|
|
* 2. إذا كان نوع المستخدم ليس "admin"، يرفض الطلب ويرجع خطأ (403 Unauthorized).
|
|
* 3. إذا كان مديراً، يسمح للطلب بالمرور للمتحكم (Controller) المعني.
|
|
*/
|
|
class AdminMiddleware
|
|
{
|
|
public function handle(Request $request, Closure $next)
|
|
{
|
|
$userType = $request->attributes->get('_jwt_user_type');
|
|
|
|
if ($userType !== 'admin') {
|
|
return response()->json([
|
|
'status' => 'failure',
|
|
'message' => 'Unauthorized — admin access required',
|
|
], 403);
|
|
}
|
|
|
|
return $next($request);
|
|
}
|
|
}
|