# 📄 Project Documentation ## 1. الصلاحيات (Permissions) - موجودة في ملف: `database/seeders/RoleSeeder.php` - هنا بنضيف أسماء الصلاحيات الأساسية: ```php $permissions = [ 'user.view', 'user.create', 'user.edit', 'user.delete', 'role.view', 'role.create', 'role.edit', 'role.delete', // صلاحية شاملة ]; ``` - بعد كده بنعمل seeding: ```bash php artisan db:seed --class=RoleSeeder ``` --- ## 2. الـ Routes - موجودة في ملف: `routes/web.php` - كل Route مربوط بصلاحية باستخدام الـ middleware: ```php Route::get('users/create', [UserController::class, 'create']) ->middleware('permission:user.create') ->name('users.create'); ``` - نفس الأسلوب مستخدم مع الـ Roles. --- ## 3. الـ Blade Directives - داخل ملفات الـ Blade نستخدم: - `@can('user.create')` → يظهر العنصر لو عنده الصلاحية. - `@canany(['user.edit', 'user.delete'])` → يظهر العنصر لو عنده أي واحدة من الصلاحيتين. - مثال: ```blade @can('user.create') إضافة مستخدم @endcan @canany(['user.edit', 'user.delete']) تعديل
@endcanany ``` --- ## 4. صلاحية الـ General Coordinator - في ملف: `app/Providers/AuthServiceProvider.php` - أضف: ```php Gate::before(function ($user, $ability) { if ($user->can('general_coordinator')) { return true; } }); ``` - أي مستخدم معاه الصلاحية دي يقدر يعمل كل حاجة بدون الحاجة لكتابة شروط إضافية في الـ Blade. --- ## 5. الـ Header Component - استخدم مكون Blade مخصص للـ Header: ```blade