forgetCachedPermissions(); // --- Permissions --- $permissions = [ // User management 'user.view', 'user.create', 'user.edit', 'user.delete', // Role management 'role.view', 'role.create', 'role.edit', 'role.delete', // Network management (placeholder for future features) 'network.view', 'network.create', 'network.edit', 'network.delete', ]; foreach ($permissions as $permission) { Permission::firstOrCreate(['name' => $permission]); } // --- Roles --- $admin = Role::firstOrCreate(['name' => 'admin']); $admin->syncPermissions(Permission::all()); $manager = Role::firstOrCreate(['name' => 'manager']); $manager->syncPermissions([ 'user.view', 'network.view', 'network.create', 'network.edit', ]); $user = Role::firstOrCreate(['name' => 'user']); $user->syncPermissions([ 'network.view', ]); // --- Default Admin User --- $adminUser = User::firstOrCreate( ['email' => 'admin@mms-systemservice.de'], [ 'name' => 'Administrator', 'password' => bcrypt('Admin1234!'), ] ); $adminUser->assignRole('admin'); $this->command->info('Roles, permissions and admin user created.'); } }