X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/60171b3522220e874436f52cc8936f6879e7e60f..refs/pull/3918/head:/app/Entities/Tools/Cloner.php diff --git a/app/Entities/Tools/Cloner.php b/app/Entities/Tools/Cloner.php index 86f392e61..5594c33a6 100644 --- a/app/Entities/Tools/Cloner.php +++ b/app/Entities/Tools/Cloner.php @@ -7,6 +7,7 @@ use BookStack\Entities\Models\Book; use BookStack\Entities\Models\Bookshelf; use BookStack\Entities\Models\Chapter; use BookStack\Entities\Models\Entity; +use BookStack\Entities\Models\HasCoverImage; use BookStack\Entities\Models\Page; use BookStack\Entities\Repos\BookRepo; use BookStack\Entities\Repos\ChapterRepo; @@ -109,9 +110,11 @@ class Cloner $inputData['tags'] = $this->entityTagsToInputArray($entity); // Add a cover to the data if existing on the original entity - if ($entity->cover instanceof Image) { - $uploadedFile = $this->imageToUploadedFile($entity->cover); - $inputData['image'] = $uploadedFile; + if ($entity instanceof HasCoverImage) { + $cover = $entity->cover()->first(); + if ($cover) { + $inputData['image'] = $this->imageToUploadedFile($cover); + } } return $inputData; @@ -122,8 +125,7 @@ class Cloner */ public function copyEntityPermissions(Entity $sourceEntity, Entity $targetEntity): void { - $targetEntity->restricted = $sourceEntity->restricted; - $permissions = $sourceEntity->permissions()->get(['role_id', 'action'])->toArray(); + $permissions = $sourceEntity->permissions()->get(['role_id', 'view', 'create', 'update', 'delete'])->toArray(); $targetEntity->permissions()->delete(); $targetEntity->permissions()->createMany($permissions); $targetEntity->rebuildPermissions();