باكدج Laravel Permission من Spatie

باكدج Laravel Permission من Spatie

باكدج قوية ومرنة لإدارة الصلاحيات والأدوار في تطبيقات Laravel

التثبيت
$composer require spatie/laravel-permission

باكدج spatie/laravel-permission من أشهر وأقوى باكدجات Laravel لإدارة الصلاحيات والأدوار (Roles & Permissions) بشكل مرن ومنظم.

الباكدج بيوفر طريقة احترافية للتحكم في صلاحيات المستخدمين، وبيتكامل بشكل مباشر مع نظام Authorization في Laravel، وده بيخليه مناسب جدًا للمشاريع الكبيرة والصغيرة.

المميزات الرئيسية

1

1️⃣ إدارة الأدوار والصلاحيات

إمكانية إنشاء Roles و Permissions وربطهم بالمستخدمين أو الموديلات بسهولة.

CODE
$user->assignRole('admin');
$user->givePermissionTo('edit articles');
2

2️⃣ دعم تعدد الـ Guards

يدعم أكثر من Guard زي (web – api – admin) بدون أي إعدادات معقدة.

3

3️⃣ دعم Blade Directives

التحكم في عرض العناصر داخل الواجهات حسب الصلاحيات.

CODE
@can('edit articles')
    <button>Edit</button>
@endcan
4

4️⃣ Middleware جاهز

تأمين الـ Routes باستخدام Middleware مخصص.

CODE
Route::middleware(['permission:edit articles'])->group(function () {
    //
});

التثبيت

1

1️⃣ تثبيت الباكدج

CODE
composer require spatie/laravel-permission
2

2️⃣ نشر الإعدادات والـ migrations

CODE
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
3

3️⃣ تشغيل الـ migrations

CODE
php artisan migrate
4

4️⃣ إضافة Trait للموديل

CODE
use Spatie\Permission\Traits\HasRoles;

الاستخدام

1

🧪 أمثلة الاستخدام

التحقق من الصلاحيات

ربط الدور بالمستخدم بعد التسجيل

التحكم في الواجهات حسب الدور

ملاحظات أمنية

لا تمنح صلاحيات عليا بدون تحقق واضح.

استخدم Cache للصلاحيات لتحسين الأداء.

راقب صلاحيات الـ API Guards بعناية.

البدائل

Laravel Policies & Gates

Laratrust

Bouncer