110 lines
2.8 KiB
PHP
110 lines
2.8 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use Illuminate\Database\Seeder;
|
|
use Spatie\Permission\Models\Permission;
|
|
use Spatie\Permission\Models\Role;
|
|
|
|
class PermissionSeeder extends Seeder
|
|
{
|
|
public function run()
|
|
{
|
|
// ------------------------------------------------------
|
|
// FINAL PERMISSION LIST (YOUR DATA)
|
|
// ------------------------------------------------------
|
|
|
|
$permissions = [
|
|
|
|
// ORDER
|
|
'order.view',
|
|
'order.create',
|
|
'order.edit',
|
|
'order.delete',
|
|
|
|
// EXTRA (ORDERS)
|
|
'orders.view', // you added this separately
|
|
|
|
// CONTAINER
|
|
'container.view',
|
|
'container.create',
|
|
'container.update',
|
|
'container.delete',
|
|
|
|
// SHIPMENT
|
|
'shipment.view',
|
|
'shipment.create',
|
|
'shipment.delete',
|
|
|
|
// INVOICE
|
|
'invoice.view',
|
|
'invoice.edit',
|
|
'invoice.add_installment',
|
|
|
|
// CUSTOMER
|
|
'customer.view',
|
|
'customer.create',
|
|
|
|
// REQUEST
|
|
'request.view',
|
|
'request.update_profile',
|
|
|
|
|
|
|
|
// @can('')
|
|
// @endcan
|
|
|
|
|
|
|
|
|
|
// ACCOUNT
|
|
'account.view',
|
|
'account.create_order',
|
|
'account.edit_order',
|
|
'account.delete_order',
|
|
'account.toggle_payment_status',
|
|
'account.add_installment',
|
|
'account.view_installments',
|
|
|
|
// REPORT
|
|
'report.view',
|
|
|
|
// MARK LIST
|
|
'mark_list.view',
|
|
];
|
|
|
|
// ------------------------------------------------------
|
|
// CREATE PERMISSIONS
|
|
// ------------------------------------------------------
|
|
|
|
foreach ($permissions as $permission) {
|
|
Permission::firstOrCreate(
|
|
['name' => $permission, 'guard_name' => 'admin']
|
|
);
|
|
}
|
|
|
|
// ------------------------------------------------------
|
|
// ROLES
|
|
// ------------------------------------------------------
|
|
|
|
// Create super-admin role
|
|
$superAdminRole = Role::firstOrCreate(
|
|
['name' => 'super-admin', 'guard_name' => 'admin']
|
|
);
|
|
|
|
// Create admin role
|
|
$adminRole = Role::firstOrCreate(
|
|
['name' => 'admin', 'guard_name' => 'admin']
|
|
);
|
|
|
|
// ------------------------------------------------------
|
|
// ASSIGN ALL PERMISSIONS TO BOTH ROLES
|
|
// ------------------------------------------------------
|
|
|
|
$allPermissions = Permission::where('guard_name', 'admin')->get();
|
|
|
|
$superAdminRole->syncPermissions($allPermissions);
|
|
$adminRole->syncPermissions($allPermissions);
|
|
}
|
|
}
|