diff --git a/app/Listeners/Updates/V13/Version1311.php b/app/Listeners/Updates/V13/Version1311.php new file mode 100644 index 000000000..114165eb8 --- /dev/null +++ b/app/Listeners/Updates/V13/Version1311.php @@ -0,0 +1,62 @@ +check($event)) { + return; + } + + $this->updatePermissions(); + + // Update database + Artisan::call('migrate', ['--force' => true]); + } + + protected function updatePermissions() + { + $permissions = []; + + // Common Uploads + $permissions[] = Permission::firstOrCreate([ + 'name' => 'read-common-uploads', + 'display_name' => 'Read Common Uploads', + 'description' => 'Read Common Uploads', + ]); + + // Attach permission to roles + $roles = Role::all(); + + foreach ($roles as $role) { + $allowed = ['admin', 'manager']; + + if (!in_array($role->name, $allowed)) { + continue; + } + + foreach ($permissions as $permission) { + $role->attachPermission($permission); + } + } + } +} diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index 86267942b..b5732a2fa 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -33,6 +33,7 @@ class EventServiceProvider extends ServiceProvider 'App\Listeners\Updates\V13\Version135', 'App\Listeners\Updates\V13\Version138', 'App\Listeners\Updates\V13\Version139', + 'App\Listeners\Updates\V13\Version1311', ], 'Illuminate\Auth\Events\Login' => [ 'App\Listeners\Auth\Login',