]> BookStack Code Mirror - bookstack/blobdiff - app/Entities/Tools/Cloner.php
Added clone of entity permissions on chapter/book promotion
[bookstack] / app / Entities / Tools / Cloner.php
index 3553a9db3cd569dbd9030439512ba4beb6737fb6..91e10b9be23457ec90d2d238d4dd0b3ec0f56789 100644 (file)
@@ -121,6 +121,18 @@ class Cloner
         return $inputData;
     }
 
+    /**
+     * Copy the permission settings from the source entity to the target entity.
+     */
+    public function copyEntityPermissions(Entity $sourceEntity, Entity $targetEntity): void
+    {
+        $targetEntity->restricted = $sourceEntity->restricted;
+        $permissions = $sourceEntity->permissions()->get(['role_id', 'action'])->toArray();
+        $targetEntity->permissions()->delete();
+        $targetEntity->permissions()->createMany($permissions);
+        $targetEntity->rebuildPermissions();
+    }
+
     /**
      * Convert an image instance to an UploadedFile instance to mimic
      * a file being uploaded.