X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/b8c16b15a9f945b72d2ca4fe0c0172ba422199bc..refs/pull/3391/head:/app/Entities/Repos/BaseRepo.php diff --git a/app/Entities/Repos/BaseRepo.php b/app/Entities/Repos/BaseRepo.php index 7c25e4981..9e1b41672 100644 --- a/app/Entities/Repos/BaseRepo.php +++ b/app/Entities/Repos/BaseRepo.php @@ -3,25 +3,17 @@ namespace BookStack\Entities\Repos; use BookStack\Actions\TagRepo; -use BookStack\Entities\Book; -use BookStack\Entities\Entity; -use BookStack\Entities\HasCoverImage; +use BookStack\Entities\Models\Entity; +use BookStack\Entities\Models\HasCoverImage; use BookStack\Exceptions\ImageUploadException; use BookStack\Uploads\ImageRepo; use Illuminate\Http\UploadedFile; -use Illuminate\Support\Collection; class BaseRepo { + protected TagRepo $tagRepo; + protected ImageRepo $imageRepo; - protected $tagRepo; - protected $imageRepo; - - - /** - * BaseRepo constructor. - * @param $tagRepo - */ public function __construct(TagRepo $tagRepo, ImageRepo $imageRepo) { $this->tagRepo = $tagRepo; @@ -29,7 +21,7 @@ class BaseRepo } /** - * Create a new entity in the system + * Create a new entity in the system. */ public function create(Entity $entity, array $input) { @@ -37,6 +29,7 @@ class BaseRepo $entity->forceFill([ 'created_by' => user()->id, 'updated_by' => user()->id, + 'owned_by' => user()->id, ]); $entity->refreshSlug(); $entity->save(); @@ -65,6 +58,7 @@ class BaseRepo if (isset($input['tags'])) { $this->tagRepo->saveTagsToEntity($entity, $input['tags']); + $entity->touch(); } $entity->rebuildPermissions(); @@ -73,10 +67,13 @@ class BaseRepo /** * Update the given items' cover image, or clear it. + * + * @param Entity&HasCoverImage $entity + * * @throws ImageUploadException * @throws \Exception */ - public function updateCoverImage(HasCoverImage $entity, ?UploadedFile $coverImage, bool $removeImage = false) + public function updateCoverImage($entity, ?UploadedFile $coverImage, bool $removeImage = false) { if ($coverImage) { $this->imageRepo->destroyImage($entity->cover); @@ -91,29 +88,4 @@ class BaseRepo $entity->save(); } } - - /** - * Update the permissions of an entity. - */ - public function updatePermissions(Entity $entity, bool $restricted, Collection $permissions = null) - { - $entity->restricted = $restricted; - $entity->permissions()->delete(); - - if (!is_null($permissions)) { - $entityPermissionData = $permissions->flatMap(function ($restrictions, $roleId) { - return collect($restrictions)->keys()->map(function ($action) use ($roleId) { - return [ - 'role_id' => $roleId, - 'action' => strtolower($action), - ] ; - }); - }); - - $entity->permissions()->createMany($entityPermissionData); - } - - $entity->save(); - $entity->rebuildPermissions(); - } }