diff --git a/app/Http/Controllers/Forms/FormEntertainmentPresentationController.php b/app/Http/Controllers/Forms/FormEntertainmentPresentationController.php index 6934204..a1a84b0 100644 --- a/app/Http/Controllers/Forms/FormEntertainmentPresentationController.php +++ b/app/Http/Controllers/Forms/FormEntertainmentPresentationController.php @@ -347,7 +347,7 @@ class FormEntertainmentPresentationController extends Controller public function open($id) { - $this->checkAuthorization(auth()->user(), ['final_approval.approve']); + $this->checkAuthorization(auth()->user(), ['final_approval.open']); $form = FormEntertaimentPresentation::findOrfail($id); $form->update([ diff --git a/app/Http/Controllers/Forms/FormMeetingSeminarController.php b/app/Http/Controllers/Forms/FormMeetingSeminarController.php index 696865b..68eaeb0 100644 --- a/app/Http/Controllers/Forms/FormMeetingSeminarController.php +++ b/app/Http/Controllers/Forms/FormMeetingSeminarController.php @@ -333,7 +333,7 @@ class FormMeetingSeminarController extends Controller public function open($id) { - $this->checkAuthorization(auth()->user(), ['final_approval.approve']); + $this->checkAuthorization(auth()->user(), ['final_approval.open']); $form = FormMeetingSeminar::findOrfail($id); $form->update([ diff --git a/app/Http/Controllers/Forms/FormOtherController.php b/app/Http/Controllers/Forms/FormOtherController.php index c98f58e..b7d1ec8 100644 --- a/app/Http/Controllers/Forms/FormOtherController.php +++ b/app/Http/Controllers/Forms/FormOtherController.php @@ -338,7 +338,7 @@ class FormOtherController extends Controller public function open($id) { - $this->checkAuthorization(auth()->user(), ['final_approval.approve']); + $this->checkAuthorization(auth()->user(), ['final_approval.open']); $form = FormOthers::findOrfail($id); $form->update([ diff --git a/app/Http/Controllers/Forms/FormUpCountryController.php b/app/Http/Controllers/Forms/FormUpCountryController.php index 16c7f74..707b4b9 100644 --- a/app/Http/Controllers/Forms/FormUpCountryController.php +++ b/app/Http/Controllers/Forms/FormUpCountryController.php @@ -403,7 +403,7 @@ class FormUpCountryController extends Controller public function open($id) { - $this->checkAuthorization(auth()->user(), ['final_approval.approve']); + $this->checkAuthorization(auth()->user(), ['final_approval.open']); $form = FormUpCountry::findOrfail($id); $form->update([ diff --git a/app/Http/Controllers/Forms/FormVehicleController.php b/app/Http/Controllers/Forms/FormVehicleController.php index 683f4f7..fbe6b7f 100644 --- a/app/Http/Controllers/Forms/FormVehicleController.php +++ b/app/Http/Controllers/Forms/FormVehicleController.php @@ -348,7 +348,7 @@ class FormVehicleController extends Controller public function open($id) { - $this->checkAuthorization(auth()->user(), ['final_approval.approve']); + $this->checkAuthorization(auth()->user(), ['final_approval.open']); $form = FormVehicleRunningCost::findOrfail($id); $form->update([ diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php index 8bb7a58..56a05e1 100644 --- a/database/seeds/DatabaseSeeder.php +++ b/database/seeds/DatabaseSeeder.php @@ -9,6 +9,7 @@ use Database\Seeds\RayonSeeder; use Database\Seeds\RolePermissionSeeder2; use Database\Seeds\RolePermissionSeeder3; use Database\Seeds\RolePermissionSeeder4; +use Database\Seeds\RolePermissionSeeder5; class DatabaseSeeder extends Seeder { @@ -26,6 +27,7 @@ class DatabaseSeeder extends Seeder // $this->call(RayonSeeder::class); // $this->call(RolePermissionSeeder2::class); // $this->call(RolePermissionSeeder3::class); - $this->call(RolePermissionSeeder4::class); + // $this->call(RolePermissionSeeder4::class); + $this->call(RolePermissionSeeder5::class); } } diff --git a/database/seeds/RolePermissionSeeder5.php b/database/seeds/RolePermissionSeeder5.php new file mode 100644 index 0000000..7459bb0 --- /dev/null +++ b/database/seeds/RolePermissionSeeder5.php @@ -0,0 +1,87 @@ + 'final_approval', + 'permissions' => [ + 'final_approval.open', + ] + ], + [ + 'group_name' => 'audit.trail', + 'permissions' => [ + 'audit.trail.view', + ] + ], + [ + 'group_name' => 'report', + 'permissions' => [ + 'report.view', + ] + ] + ]; + + // Do same for the admin guard for tutorial purposes. + $admin = Admin::where('username', 'superadmin')->first(); + $roleSuperAdmin = $this->maybeCreateSuperAdminRole($admin); + + // Create and Assign Permissions + for ($i = 0; $i < count($permissions); $i++) { + $permissionGroup = $permissions[$i]['group_name']; + for ($j = 0; $j < count($permissions[$i]['permissions']); $j++) { + $permissionExist = Permission::where('name', $permissions[$i]['permissions'][$j])->first(); + if (is_null($permissionExist)) { + $permission = Permission::create( + [ + 'name' => $permissions[$i]['permissions'][$j], + 'group_name' => $permissionGroup, + 'guard_name' => 'admin' + ] + ); + $roleSuperAdmin->givePermissionTo($permission); + $permission->assignRole($roleSuperAdmin); + } + } + } + + // Assign super admin role permission to superadmin user + if ($admin) { + $admin->assignRole($roleSuperAdmin); + } + } + + private function maybeCreateSuperAdminRole($admin): Role + { + if (is_null($admin)) { + $roleSuperAdmin = Role::create(['name' => 'superadmin', 'guard_name' => 'admin']); + } else { + $roleSuperAdmin = Role::where('name', 'superadmin')->where('guard_name', 'admin')->first(); + } + + if (is_null($roleSuperAdmin)) { + $roleSuperAdmin = Role::create(['name' => 'superadmin', 'guard_name' => 'admin']); + } + + return $roleSuperAdmin; + } +} diff --git a/resources/views/backend/pages/forms/entertainment/index.blade.php b/resources/views/backend/pages/forms/entertainment/index.blade.php index 2fb9465..ba2c288 100644 --- a/resources/views/backend/pages/forms/entertainment/index.blade.php +++ b/resources/views/backend/pages/forms/entertainment/index.blade.php @@ -191,7 +191,7 @@ @else - @if ($item->final_approved_at) + @if ($item->final_approved_at && auth()->user()->can('final_approval.open'))
@csrf @method('PUT') diff --git a/resources/views/backend/pages/forms/meeting/index.blade.php b/resources/views/backend/pages/forms/meeting/index.blade.php index 8e83778..a3a9aa7 100644 --- a/resources/views/backend/pages/forms/meeting/index.blade.php +++ b/resources/views/backend/pages/forms/meeting/index.blade.php @@ -191,7 +191,7 @@
@else - @if ($item->final_approved_at) + @if ($item->final_approved_at && auth()->user()->can('final_approval.open'))
@csrf @method('PUT') diff --git a/resources/views/backend/pages/forms/other/index.blade.php b/resources/views/backend/pages/forms/other/index.blade.php index 039affe..a31e6ff 100644 --- a/resources/views/backend/pages/forms/other/index.blade.php +++ b/resources/views/backend/pages/forms/other/index.blade.php @@ -189,7 +189,7 @@
@else - @if ($item->final_approved_at) + @if ($item->final_approved_at && auth()->user()->can('final_approval.open'))
@csrf @method('PUT') diff --git a/resources/views/backend/pages/forms/upcountry/index.blade.php b/resources/views/backend/pages/forms/upcountry/index.blade.php index 52ef851..7b371cd 100644 --- a/resources/views/backend/pages/forms/upcountry/index.blade.php +++ b/resources/views/backend/pages/forms/upcountry/index.blade.php @@ -191,7 +191,7 @@
@else - @if ($item->final_approved_at) + @if ($item->final_approved_at && auth()->user()->can('final_approval.open'))
@csrf @method('PUT') diff --git a/resources/views/backend/pages/forms/vehicle/index.blade.php b/resources/views/backend/pages/forms/vehicle/index.blade.php index eea63e9..83a4203 100644 --- a/resources/views/backend/pages/forms/vehicle/index.blade.php +++ b/resources/views/backend/pages/forms/vehicle/index.blade.php @@ -193,7 +193,7 @@
@else - @if ($item->final_approved_at) + @if ($item->final_approved_at && auth()->user()->can('final_approval.open'))
@csrf @method('PUT')