195 lines
4.4 KiB
PHP
195 lines
4.4 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use Illuminate\Database\Seeder;
|
|
use Spatie\Permission\Models\Permission;
|
|
use Spatie\Permission\Models\Role;
|
|
|
|
class RolePermissionSeeder extends Seeder
|
|
{
|
|
public function run(): void
|
|
{
|
|
$developer = Role::firstOrCreate(['name' => 'Developer']);
|
|
$owner = Role::firstOrCreate(['name' => 'Owner']);
|
|
$leader = Role::firstOrCreate(['name' => 'Leader']);
|
|
$admin = Role::firstOrCreate(['name' => 'Admin']);
|
|
$partner = Role::firstOrCreate(['name' => 'Partner']);
|
|
$customer = Role::firstOrCreate(['name' => 'Customer']);
|
|
|
|
$permissions = [
|
|
'view account',
|
|
'update account',
|
|
|
|
'view profile',
|
|
'update profile',
|
|
|
|
'view password',
|
|
'update password',
|
|
|
|
'view overview',
|
|
|
|
'view outlet',
|
|
'create outlet',
|
|
'update outlet',
|
|
'delete outlet',
|
|
|
|
'view user',
|
|
'create user',
|
|
'update user',
|
|
'delete user',
|
|
|
|
'view tier',
|
|
'create tier',
|
|
'update tier',
|
|
'delete tier',
|
|
|
|
'view voucher',
|
|
'create voucher',
|
|
'update voucher',
|
|
'delete voucher',
|
|
|
|
'view customer',
|
|
'create customer',
|
|
'update customer',
|
|
'delete customer',
|
|
|
|
'view category',
|
|
'create category',
|
|
'update category',
|
|
'delete category',
|
|
|
|
'view brand',
|
|
'create brand',
|
|
'update brand',
|
|
'delete brand',
|
|
|
|
'view perfume',
|
|
'create perfume',
|
|
'update perfume',
|
|
'delete perfume',
|
|
|
|
'view product',
|
|
'create product',
|
|
'update product',
|
|
'delete product',
|
|
|
|
'view bottle',
|
|
'create bottle',
|
|
'update bottle',
|
|
'delete bottle',
|
|
|
|
'view expense',
|
|
'create expense',
|
|
'update expense',
|
|
'delete expense',
|
|
];
|
|
|
|
foreach ($permissions as $permission) {
|
|
Permission::firstOrCreate(['name' => $permission]);
|
|
}
|
|
|
|
$developer->syncPermissions($permissions);
|
|
|
|
$owner->syncPermissions($permissions);
|
|
|
|
$leader->syncPermissions(array_diff($permissions, [
|
|
'view outlet',
|
|
'create outlet',
|
|
'update outlet',
|
|
'delete outlet',
|
|
|
|
'view user',
|
|
'create user',
|
|
'update user',
|
|
'delete user',
|
|
|
|
'create tier',
|
|
'update tier',
|
|
'delete tier',
|
|
|
|
'create voucher',
|
|
'update voucher',
|
|
'delete voucher',
|
|
|
|
'create perfume',
|
|
'update perfume',
|
|
'delete perfume',
|
|
|
|
'create product',
|
|
'update product',
|
|
'delete product',
|
|
|
|
'create bottle',
|
|
'update bottle',
|
|
'delete bottle',
|
|
]));
|
|
|
|
$admin->syncPermissions(array_diff($permissions, [
|
|
'view outlet',
|
|
'create outlet',
|
|
'update outlet',
|
|
'delete outlet',
|
|
|
|
'view user',
|
|
'create user',
|
|
'update user',
|
|
'delete user',
|
|
|
|
'create tier',
|
|
'update tier',
|
|
'delete tier',
|
|
|
|
'create voucher',
|
|
'update voucher',
|
|
'delete voucher',
|
|
|
|
'create category',
|
|
'update category',
|
|
'delete category',
|
|
|
|
'create brand',
|
|
'update brand',
|
|
'delete brand',
|
|
|
|
'create perfume',
|
|
'update perfume',
|
|
'delete perfume',
|
|
|
|
'create product',
|
|
'update product',
|
|
'delete product',
|
|
|
|
'create bottle',
|
|
'update bottle',
|
|
'delete bottle',
|
|
]));
|
|
|
|
$partner->syncPermissions([
|
|
'view overview',
|
|
|
|
'view account',
|
|
'update account',
|
|
|
|
'view profile',
|
|
'update profile',
|
|
|
|
'view password',
|
|
'update password',
|
|
]);
|
|
|
|
$customer->syncPermissions([
|
|
'view overview',
|
|
|
|
'view account',
|
|
'update account',
|
|
|
|
'view profile',
|
|
'update profile',
|
|
|
|
'view password',
|
|
'update password',
|
|
]);
|
|
}
|
|
}
|