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:
2026-06-27 17:17:26 +02:00
commit a9f86b2551
112 changed files with 15841 additions and 0 deletions
+15
View File
@@ -0,0 +1,15 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
public function run(): void
{
$this->call([
RolesAndPermissionsSeeder::class,
]);
}
}
@@ -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.');
}
}