Fixes for admin can't view document / missing permission

This commit is contained in:
Fairuz
2021-05-25 11:47:27 +08:00
parent aa906e710a
commit e1a9606695
@@ -19,50 +19,56 @@ class AdminUserPermissionsTableSeeder extends Seeder
app()['cache']->forget('spatie.permission.cache');
// admin permissions
Permission::create(['name' => 'view document', 'guard_name' => 'web']);
Permission::create(['name' => 'add document', 'guard_name' => 'web']);
Permission::create(['name' => 'edit document', 'guard_name' => 'web']);
Permission::create(['name' => 'delete document', 'guard_name' => 'web']);
$permissions = [
['name' => 'view document', 'guard_name' => 'web'],
['name' => 'add document', 'guard_name' => 'web'],
['name' => 'edit document', 'guard_name' => 'web'],
['name' => 'delete document', 'guard_name' => 'web'],
Permission::create(['name' => 'view standard_segment', 'guard_name' => 'web']);
Permission::create(['name' => 'add standard_segment', 'guard_name' => 'web']);
Permission::create(['name' => 'edit standard_segment', 'guard_name' => 'web']);
Permission::create(['name' => 'delete standard_segment', 'guard_name' => 'web']);
['name' => 'view standard_segment', 'guard_name' => 'web'],
['name' => 'add standard_segment', 'guard_name' => 'web'],
['name' => 'edit standard_segment', 'guard_name' => 'web'],
['name' => 'delete standard_segment', 'guard_name' => 'web'],
Permission::create(['name' => 'view standard_segment_constant', 'guard_name' => 'web']);
Permission::create(['name' => 'add standard_segment_constant', 'guard_name' => 'web']);
Permission::create(['name' => 'edit standard_segment_constant', 'guard_name' => 'web']);
Permission::create(['name' => 'delete standard_segment_constant', 'guard_name' => 'web']);
['name' => 'view standard_segment_constant', 'guard_name' => 'web'],
['name' => 'add standard_segment_constant', 'guard_name' => 'web'],
['name' => 'edit standard_segment_constant', 'guard_name' => 'web'],
['name' => 'delete standard_segment_constant', 'guard_name' => 'web'],
Permission::create(['name' => 'view segment', 'guard_name' => 'web']);
Permission::create(['name' => 'add segment', 'guard_name' => 'web']);
Permission::create(['name' => 'edit segment', 'guard_name' => 'web']);
Permission::create(['name' => 'delete segment', 'guard_name' => 'web']);
['name' => 'view segment', 'guard_name' => 'web'],
['name' => 'add segment', 'guard_name' => 'web'],
['name' => 'edit segment', 'guard_name' => 'web'],
['name' => 'delete segment', 'guard_name' => 'web'],
Permission::create(['name' => 'view segment_constant', 'guard_name' => 'web']);
Permission::create(['name' => 'add segment_constant', 'guard_name' => 'web']);
Permission::create(['name' => 'edit segment_constant', 'guard_name' => 'web']);
Permission::create(['name' => 'delete segment_constant', 'guard_name' => 'web']);
['name' => 'view segment_constant', 'guard_name' => 'web'],
['name' => 'add segment_constant', 'guard_name' => 'web'],
['name' => 'edit segment_constant', 'guard_name' => 'web'],
['name' => 'delete segment_constant', 'guard_name' => 'web'],
Permission::create(['name' => 'view company_bank', 'guard_name' => 'web']);
Permission::create(['name' => 'add company_bank', 'guard_name' => 'web']);
Permission::create(['name' => 'edit company_bank', 'guard_name' => 'web']);
Permission::create(['name' => 'delete company_bank', 'guard_name' => 'web']);
['name' => 'view company_bank', 'guard_name' => 'web'],
['name' => 'add company_bank', 'guard_name' => 'web'],
['name' => 'edit company_bank', 'guard_name' => 'web'],
['name' => 'delete company_bank', 'guard_name' => 'web'],
Permission::create(['name' => 'view currency', 'guard_name' => 'web']);
Permission::create(['name' => 'add currency', 'guard_name' => 'web']);
Permission::create(['name' => 'edit currency', 'guard_name' => 'web']);
Permission::create(['name' => 'delete currency', 'guard_name' => 'web']);
['name' => 'view currency', 'guard_name' => 'web'],
['name' => 'add currency', 'guard_name' => 'web'],
['name' => 'edit currency', 'guard_name' => 'web'],
['name' => 'delete currency', 'guard_name' => 'web'],
Permission::create(['name' => 'view currency_rate', 'guard_name' => 'web']);
Permission::create(['name' => 'add currency_rate', 'guard_name' => 'web']);
Permission::create(['name' => 'edit currency_rate', 'guard_name' => 'web']);
Permission::create(['name' => 'delete currency_rate', 'guard_name' => 'web']);
['name' => 'view currency_rate', 'guard_name' => 'web'],
['name' => 'add currency_rate', 'guard_name' => 'web'],
['name' => 'edit currency_rate', 'guard_name' => 'web'],
['name' => 'delete currency_rate', 'guard_name' => 'web'],
Permission::create(['name' => 'view booking', 'guard_name' => 'web']);
Permission::create(['name' => 'add booking', 'guard_name' => 'web']);
Permission::create(['name' => 'edit booking', 'guard_name' => 'web']);
Permission::create(['name' => 'delete booking', 'guard_name' => 'web']);
['name' => 'view booking', 'guard_name' => 'web'],
['name' => 'add booking', 'guard_name' => 'web'],
['name' => 'edit booking', 'guard_name' => 'web'],
['name' => 'delete booking', 'guard_name' => 'web']
];
foreach ($permissions as $permission){
Permission::updateOrCreate($permission,$permission);
}
///////////////////////////////////////////////////////////////////////
@@ -77,10 +83,14 @@ class AdminUserPermissionsTableSeeder extends Seeder
$shadow_admin_role->givePermissionTo(Permission::all());
//Since same set of permissions, do it one-go at end
//Assign permission by user role/type not id
//$admin = User::find(1);
//$admin->assignRole($shadow_admin_role);
$shadow_admins = User::query()->whereIn('type',[Constants\RoleTypes::SHADOW_ADMIN])->get();
foreach ($shadow_admins as $shadow_admin) {
$shadow_admin->assignRole($shadow_admin_role);
}
///////////////////////////////////////////////////////////////////////
$ultimate_admin_role = Role::updateOrCreate(
@@ -94,11 +104,34 @@ class AdminUserPermissionsTableSeeder extends Seeder
$ultimate_admin_role->givePermissionTo(Permission::all());
$admins = User::query()->whereIn('type',Constants\RoleTypes::ADMIN_ROLES)->get();
foreach ($admins as $admin) {
$admin->assignRole($ultimate_admin_role);
$super_admins = User::query()->whereIn('type',[Constants\RoleTypes::SUPER_ADMIN])->get();
foreach ($super_admins as $super_admin) {
$super_admin->assignRole($ultimate_admin_role);
}
$admin_role = Role::updateOrCreate(
['name' => 'Admin'],
[
'name' => 'Admin',
'guard_name' => 'web',
'type' => 1,
]
);
//Normal admin limited permissions
$admin_permissions = [
$permissions[0]['name'],
$permissions[1]['name'],
$permissions[2]['name'],
$permissions[3]['name'],
];
$admin_role->givePermissionTo(Permission::query()->whereIn('name',$admin_permissions)->get());
$admins = User::query()->whereIn('type',[Constants\RoleTypes::ADMIN])->get();
foreach ($admins as $admin) {
$admin->assignRole($admin_role);
}
///////////////////////////////////////////////////////////////////////
}
}