From 79882c1bba30587631a895669d5f1a12d708c474 Mon Sep 17 00:00:00 2001 From: edalzell Date: Wed, 10 Jul 2024 11:41:41 -0700 Subject: [PATCH] add updater script --- src/ServiceProvider.php | 1 + ...ddManagePublishStatesPermissionToRoles.php | 35 +++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 src/UpdateScripts/AddManagePublishStatesPermissionToRoles.php diff --git a/src/ServiceProvider.php b/src/ServiceProvider.php index 8d80b370..4d77d2dc 100644 --- a/src/ServiceProvider.php +++ b/src/ServiceProvider.php @@ -67,6 +67,7 @@ class ServiceProvider extends AddonServiceProvider protected $updateScripts = [ UpdateScripts\ChangePermissionNames::class, UpdateScripts\MigrateBlueprints::class, + UpdateScripts\AddManagePublishStatesPermissionToRoles::class, ]; protected $vite = [ diff --git a/src/UpdateScripts/AddManagePublishStatesPermissionToRoles.php b/src/UpdateScripts/AddManagePublishStatesPermissionToRoles.php new file mode 100644 index 00000000..96eed3d2 --- /dev/null +++ b/src/UpdateScripts/AddManagePublishStatesPermissionToRoles.php @@ -0,0 +1,35 @@ +isUpdatingTo('7.5.4'); + } + + public function update() + { + Role::all()->each(function ($role) { + $requiresSave = false; + + Runway::allResources()->each(function (Resource $resource) use ($role, &$requiresSave) { + if ($role->hasPermission("create {$resource->handle()}")) { + $role->addPermission("publish {$resource->handle()}"); + $requiresSave = true; + } + + }); + + if ($requiresSave) { + $role->save(); + } + }); + } +}