*/ private const MODULES = [ 'category', 'course', 'schedule', 'announcement', 'hero-slide', 'lead', 'menu', 'comment', 'faq', 'guide-card', 'setting', 'page', 'user', 'role', ]; /** * Her modül için oluşturulacak CRUD aksiyonlar. * * @var list */ private const ACTIONS = ['view', 'create', 'update', 'delete']; /** * Editor rolüne verilmeyecek aksiyonlar. * * @var list */ private const EDITOR_EXCLUDED_ACTIONS = ['delete']; /** * Run the database seeds. */ public function run(): void { app()[PermissionRegistrar::class]->forgetCachedPermissions(); $allPermissions = []; $editorPermissions = []; foreach (self::MODULES as $module) { foreach (self::ACTIONS as $action) { $permissionName = "{$action}-{$module}"; Permission::firstOrCreate(['name' => $permissionName, 'guard_name' => 'web']); $allPermissions[] = $permissionName; if (! in_array($action, self::EDITOR_EXCLUDED_ACTIONS)) { $editorPermissions[] = $permissionName; } } } // super-admin: tüm yetkiler $superAdmin = Role::firstOrCreate(['name' => 'super-admin', 'guard_name' => 'web']); $superAdmin->syncPermissions($allPermissions); // editor: silme hariç tüm yetkiler $editor = Role::firstOrCreate(['name' => 'editor', 'guard_name' => 'web']); $editor->syncPermissions($editorPermissions); } }