21-11-2025
This commit is contained in:
parent
fa2ebd457d
commit
07959c0ba2
113 changed files with 4730 additions and 898 deletions
|
|
@ -5,6 +5,7 @@ namespace Database\Seeders;
|
|||
use App\Models\User;
|
||||
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
|
||||
class DatabaseSeeder extends Seeder
|
||||
{
|
||||
|
|
@ -16,8 +17,9 @@ class DatabaseSeeder extends Seeder
|
|||
// User::factory(10)->create();
|
||||
|
||||
User::factory()->create([
|
||||
'name' => 'Test User',
|
||||
'email' => 'test@example.com',
|
||||
'name' => 'Kevin Adametz',
|
||||
'email' => 'kevin.adametz@me.com',
|
||||
'password' => Hash::make('xunfew-0Jygjy-minnyt'),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
171
database/seeders/RoleSeeder.php
Normal file
171
database/seeders/RoleSeeder.php
Normal file
|
|
@ -0,0 +1,171 @@
|
|||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Seeder;
|
||||
use Spatie\Permission\Models\Role;
|
||||
use Spatie\Permission\Models\Permission;
|
||||
|
||||
class RoleSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
// Reset cached roles and permissions
|
||||
app()[\Spatie\Permission\PermissionRegistrar::class]->forgetCachedPermissions();
|
||||
|
||||
// --- Definiere Permissions ---
|
||||
$permissions = [
|
||||
// Hub Management
|
||||
'view hubs',
|
||||
'create hubs',
|
||||
'edit hubs',
|
||||
'delete hubs',
|
||||
|
||||
// Partner Management
|
||||
'view partners',
|
||||
'create partners',
|
||||
'edit partners',
|
||||
'delete partners',
|
||||
'manage provisions', // Provisions-Regeln verwalten
|
||||
|
||||
// Product Management
|
||||
'view products',
|
||||
'create products',
|
||||
'edit products',
|
||||
'delete products',
|
||||
'manage rental options', // Miet-Parameter verwalten
|
||||
|
||||
// Order Management (für später)
|
||||
'view orders',
|
||||
'manage orders',
|
||||
|
||||
// User & Role Management
|
||||
'view users',
|
||||
'manage users',
|
||||
'manage roles',
|
||||
|
||||
// Frontend/Customer facing
|
||||
'access dashboard', // Genereller Backend-Zugriff
|
||||
'place orders' // Für Kunden
|
||||
];
|
||||
|
||||
// Erstelle Permissions
|
||||
foreach ($permissions as $permission) {
|
||||
Permission::create(['name' => $permission]);
|
||||
}
|
||||
|
||||
// --- Definiere Rollen und weise Permissions zu ---
|
||||
|
||||
// 1. Customer (Endkunde)
|
||||
$customerRole = Role::create([
|
||||
'name' => 'Customer',
|
||||
'display_name' => 'Customer (Kunde)',
|
||||
'icon' => 'user',
|
||||
'color' => 'indigo',
|
||||
'can_be_invited' => true
|
||||
]);
|
||||
$customerRole->givePermissionTo([
|
||||
'view products',
|
||||
'place orders',
|
||||
'view orders' // Eigene Bestellungen sehen
|
||||
]);
|
||||
|
||||
// 2. Estate-Agent (Makler)
|
||||
$estateAgentRole = Role::create([
|
||||
'name' => 'Estate-Agent',
|
||||
'display_name' => 'Estate-Agent (Makler)',
|
||||
'icon' => 'home',
|
||||
'color' => 'lime',
|
||||
'can_be_invited' => true
|
||||
]);
|
||||
$estateAgentRole->givePermissionTo([
|
||||
'access dashboard',
|
||||
'view partners', // Damit sie sehen können, wen sie empfehlen
|
||||
'view hubs'
|
||||
// Makler bekommen KEINE Produkt- oder Order-Rechte
|
||||
]);
|
||||
|
||||
// 3. Retailer (Lokaler Händler)
|
||||
$retailerRole = Role::create([
|
||||
'name' => 'Retailer',
|
||||
'display_name' => 'Retailer (Händler)',
|
||||
'icon' => 'building-storefront',
|
||||
'color' => 'teal',
|
||||
'can_be_invited' => true
|
||||
]);
|
||||
$retailerRole->givePermissionTo([
|
||||
'access dashboard',
|
||||
'view products',
|
||||
'create products',
|
||||
'edit products', // Später eingeschränkt auf EIGENE Produkte
|
||||
'delete products', // Später eingeschränkt auf EIGENE Produkte
|
||||
'manage rental options',
|
||||
'view orders', // Eigene Bestellungen
|
||||
'manage orders' // Eigene Bestellungen
|
||||
]);
|
||||
|
||||
// 4. Manufacturer (Hersteller)
|
||||
$manufacturerRole = Role::create([
|
||||
'name' => 'Manufacturer',
|
||||
'display_name' => 'Manufacturer (Hersteller)',
|
||||
'icon' => 'wrench-screwdriver',
|
||||
'color' => 'orange',
|
||||
'can_be_invited' => true
|
||||
]);
|
||||
$manufacturerRole->givePermissionTo([
|
||||
'access dashboard',
|
||||
'view products',
|
||||
'create products',
|
||||
'edit products', // Später eingeschränkt auf EIGENE Produkte
|
||||
'delete products', // Später eingeschränkt auf EIGENE Produkte
|
||||
'manage rental options',
|
||||
'view orders', // Eigene Bestellungen
|
||||
'manage orders' // Eigene Bestellungen
|
||||
]);
|
||||
|
||||
// 5. Admin (B2In Management / Marcel)
|
||||
$adminRole = Role::create([
|
||||
'name' => 'Admin',
|
||||
'display_name' => 'Admin (Administrator)',
|
||||
'icon' => 'user-circle',
|
||||
'color' => 'purple',
|
||||
'can_be_invited' => false // Admins werden NICHT eingeladen
|
||||
]);
|
||||
$adminRole->givePermissionTo([
|
||||
'access dashboard',
|
||||
'view hubs',
|
||||
'create hubs',
|
||||
'edit hubs',
|
||||
'delete hubs',
|
||||
'view partners',
|
||||
'create partners',
|
||||
'edit partners',
|
||||
'delete partners',
|
||||
'manage provisions',
|
||||
'view products',
|
||||
'create products',
|
||||
'edit products',
|
||||
'delete products',
|
||||
'manage rental options',
|
||||
'view orders',
|
||||
'manage orders',
|
||||
'view users',
|
||||
'manage users',
|
||||
'manage roles'
|
||||
]);
|
||||
|
||||
// 6. Super-Admin (Entwickler)
|
||||
// Super-Admins bekommen automatisch ALLE Rechte.
|
||||
// Das Paket erkennt die Rolle 'Super-Admin', wenn wir ein Gate definieren.
|
||||
$superAdminRole = Role::create([
|
||||
'name' => 'Super-Admin',
|
||||
'display_name' => 'Super-Admin (Entwickler)',
|
||||
'icon' => 'shield-check',
|
||||
'color' => 'red',
|
||||
'can_be_invited' => false // Super-Admins werden NICHT eingeladen
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,76 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\User;
|
||||
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
use Spatie\Permission\Models\Permission;
|
||||
use Spatie\Permission\Models\Role;
|
||||
|
||||
class RolesAndPermissionsSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Seed the application's database.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
// Rollen
|
||||
Role::create(['name' => 'superadmin']);
|
||||
Role::create(['name' => 'admin']);
|
||||
Role::create(['name' => 'trader']);
|
||||
Role::create(['name' => 'customer']);
|
||||
|
||||
// Beispiel-Permissions
|
||||
// Trader
|
||||
Permission::create(['name' => 'products_manage']);
|
||||
|
||||
// Customer
|
||||
Permission::create(['name' => 'orders_view']);
|
||||
|
||||
// Admin
|
||||
// CMS
|
||||
Permission::create(['name' => 'cms_manage']);
|
||||
Permission::create(['name' => 'cms_view']);
|
||||
Permission::create(['name' => 'cms_create']);
|
||||
Permission::create(['name' => 'cms_delete']);
|
||||
Permission::create(['name' => 'cms_list']);
|
||||
|
||||
// User
|
||||
Permission::create(['name' => 'user_edit']);
|
||||
Permission::create(['name' => 'user_view']);
|
||||
Permission::create(['name' => 'user_create']);
|
||||
Permission::create(['name' => 'user_delete']);
|
||||
Permission::create(['name' => 'user_list']);
|
||||
|
||||
// Superadmin
|
||||
// alles
|
||||
/*Permission::create(['name' => 'products_manage']);
|
||||
Permission::create(['name' => 'orders_view']);
|
||||
Permission::create(['name' => 'user_settings']);
|
||||
Permission::create(['name' => 'system_settings']);
|
||||
Permission::create(['name' => 'user_manage']);
|
||||
Permission::create(['name' => 'order_manage']);
|
||||
Permission::create(['name' => 'product_manage']);
|
||||
Permission::create(['name' => 'user_view']);
|
||||
Permission::create(['name' => 'order_view']);
|
||||
Permission::create(['name' => 'product_view']);
|
||||
Permission::create(['name' => 'system_view']);
|
||||
Permission::create(['name' => 'user_create']);
|
||||
Permission::create(['name' => 'order_create']);
|
||||
Permission::create(['name' => 'product_create']);
|
||||
Permission::create(['name' => 'system_create']);
|
||||
Permission::create(['name' => 'order_edit']);
|
||||
Permission::create(['name' => 'product_edit']);
|
||||
Permission::create(['name' => 'system_edit']);
|
||||
Permission::create(['name' => 'user_delete']);
|
||||
Permission::create(['name' => 'order_delete']);
|
||||
Permission::create(['name' => 'product_delete']);
|
||||
Permission::create(['name' => 'system_delete']);
|
||||
Permission::create(['name' => 'user_list']);
|
||||
Permission::create(['name' => 'order_list']);
|
||||
Permission::create(['name' => 'product_list']);
|
||||
Permission::create(['name' => 'system_list']);*/
|
||||
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue