feat(auth): Laravel 13 + Breeze + Spatie RBAC
- Authentifizierung via Laravel Breeze (Blade) - RBAC via Spatie Permission v8 (admin/manager/user) - MariaDB-Anbindung konfiguriert - Rollen & Permissions via Seeder angelegt - Admin-Account: admin@mms-systemservice.de Version: 0.2.0
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Seeder;
|
||||
use Spatie\Permission\Models\Role;
|
||||
use Spatie\Permission\Models\Permission;
|
||||
use App\Models\User;
|
||||
|
||||
class RolesAndPermissionsSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
// Reset cached roles and permissions
|
||||
app()[\Spatie\Permission\PermissionRegistrar::class]->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.');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user