first
This commit is contained in:
119
database/seeders/RolePermissionSeeder.php
Normal file
119
database/seeders/RolePermissionSeeder.php
Normal file
@@ -0,0 +1,119 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Seeder;
|
||||
use Spatie\Permission\Models\Permission;
|
||||
use Spatie\Permission\Models\Role;
|
||||
use Spatie\Permission\PermissionRegistrar;
|
||||
|
||||
class RolePermissionSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Seed the application's roles and permissions.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
app(PermissionRegistrar::class)->forgetCachedPermissions();
|
||||
|
||||
$permissions = [
|
||||
'admin.dashboard.view',
|
||||
'users.manage',
|
||||
'roles.manage',
|
||||
'election.manage',
|
||||
'hierarchy.manage',
|
||||
'positions.manage',
|
||||
'quotas.manage',
|
||||
'qr.manage',
|
||||
'applications.view_all',
|
||||
'applications.create_manual',
|
||||
'applications.update',
|
||||
'applications.approve',
|
||||
'applications.reject',
|
||||
'assignments.manage_all',
|
||||
'representatives.manage',
|
||||
'wheelchairs.manage',
|
||||
'attendance.view_all',
|
||||
'attendance.record_all',
|
||||
'finance.dashboard.view',
|
||||
'finance.view',
|
||||
'finance.verify',
|
||||
'finance.export',
|
||||
'applications.view_finance_fields',
|
||||
'exports.generate_all',
|
||||
'audit.view',
|
||||
'system_notes.create',
|
||||
'ppm.dashboard.view',
|
||||
'applications.view_own_pusat',
|
||||
'applications.review_own_pusat',
|
||||
'applications.approve_own_pusat',
|
||||
'applications.reject_own_pusat',
|
||||
'applications.change_role_own_pusat',
|
||||
'assignments.manage_own_pusat',
|
||||
'representatives.view_own_pusat',
|
||||
'attendance.record_own_pusat',
|
||||
'attendance.view_own_pusat',
|
||||
'exports.generate_own_pusat',
|
||||
'ktm.dashboard.view',
|
||||
'ktm.team.view',
|
||||
'ktm.kp.create',
|
||||
'ktm.kp.approve',
|
||||
'ktm.kp.delete_created',
|
||||
'applications.view_own_team',
|
||||
'public_application.create',
|
||||
'public_application.view_own_status',
|
||||
];
|
||||
|
||||
$permissionModels = [];
|
||||
|
||||
foreach ($permissions as $permission) {
|
||||
$permissionModels[$permission] = Permission::findOrCreate($permission, 'web');
|
||||
}
|
||||
|
||||
$rolePermissions = [
|
||||
'Admin' => $permissions,
|
||||
'Admin Kewangan' => [
|
||||
'finance.dashboard.view',
|
||||
'finance.view',
|
||||
'finance.verify',
|
||||
'finance.export',
|
||||
'applications.view_finance_fields',
|
||||
],
|
||||
'PPM' => [
|
||||
'ppm.dashboard.view',
|
||||
'applications.view_own_pusat',
|
||||
'applications.review_own_pusat',
|
||||
'applications.approve_own_pusat',
|
||||
'applications.reject_own_pusat',
|
||||
'applications.change_role_own_pusat',
|
||||
'assignments.manage_own_pusat',
|
||||
'representatives.view_own_pusat',
|
||||
'attendance.record_own_pusat',
|
||||
'attendance.view_own_pusat',
|
||||
'exports.generate_own_pusat',
|
||||
],
|
||||
'KTM' => [
|
||||
'ktm.dashboard.view',
|
||||
'ktm.team.view',
|
||||
'ktm.kp.create',
|
||||
'ktm.kp.approve',
|
||||
'ktm.kp.delete_created',
|
||||
'applications.view_own_team',
|
||||
],
|
||||
'Pemohon' => [
|
||||
'public_application.create',
|
||||
'public_application.view_own_status',
|
||||
],
|
||||
];
|
||||
|
||||
foreach ($rolePermissions as $roleName => $permissionNames) {
|
||||
$role = Role::findOrCreate($roleName, 'web');
|
||||
$role->syncPermissions(array_map(
|
||||
fn (string $permission) => $permissionModels[$permission],
|
||||
$permissionNames,
|
||||
));
|
||||
}
|
||||
|
||||
app(PermissionRegistrar::class)->forgetCachedPermissions();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user