1313use Spatie \MediaLibrary \InteractsWithMedia ;
1414use Spatie \MediaLibrary \MediaCollections \Models \Media ;
1515
16+ /**
17+ * @property int $id
18+ * @property string $name
19+ * @property string $slug
20+ * @property string $type
21+ * @property int|null $parent_id
22+ * @property int $created_by
23+ * @property int|null $updated_by
24+ * @property string|null $external_url
25+ * @property string|null $link_description
26+ * @property string|null $general_access
27+ * @property \Illuminate\Support\Carbon|null $created_at
28+ * @property \Illuminate\Support\Carbon|null $updated_at
29+ * @property \Illuminate\Support\Carbon|null $deleted_at
30+ * @property-read LibraryItem|null $parent
31+ * @property-read \Illuminate\Database\Eloquent\Collection<int, LibraryItem> $children
32+ * @property-read \App\Models\User $creator
33+ * @property-read \App\Models\User|null $updater
34+ * @property-read \Illuminate\Database\Eloquent\Collection<int, LibraryItemPermission> $permissions
35+ * @property-read \Illuminate\Database\Eloquent\Collection<int, LibraryItemTag> $tags
36+ */
1637class LibraryItem extends Model implements HasMedia
1738{
1839 use HasFactory;
@@ -58,14 +79,16 @@ protected static function boot(): void
5879
5980 static ::created (function (self $ item ) {
6081 // Copy parent folder permissions to the new item
61- if ($ item ->parent_id ) {
82+ if ($ item ->parent_id && $ item -> parent ) {
6283 $ parentPermissions = $ item ->parent ->permissions ()->get ();
6384
6485 foreach ($ parentPermissions as $ permission ) {
65- $ item ->permissions ()->create ([
66- 'user_id ' => $ permission ->user_id ,
67- 'role ' => $ permission ->role ,
68- ]);
86+ if (isset ($ permission ->user_id ) && isset ($ permission ->role )) {
87+ $ item ->permissions ()->create ([
88+ 'user_id ' => $ permission ->user_id ,
89+ 'role ' => $ permission ->role ,
90+ ]);
91+ }
6992 }
7093 }
7194 });
@@ -199,7 +222,7 @@ public function getEffectiveRole($user): ?string
199222 ->where ('user_id ' , $ user ->id )
200223 ->first ();
201224
202- if ($ directPermission ) {
225+ if ($ directPermission && isset ( $ directPermission -> role ) ) {
203226 return $ directPermission ->role ;
204227 }
205228
@@ -220,14 +243,16 @@ public function getEffectiveRole($user): ?string
220243
221244 /**
222245 * Get the current owner of this item.
246+ *
247+ * @return \App\Models\User|\Illuminate\Database\Eloquent\Model|null
223248 */
224- public function getCurrentOwner (): ? \ App \ Models \ User
249+ public function getCurrentOwner ()
225250 {
226251 $ ownerPermission = $ this ->permissions ()
227252 ->where ('role ' , 'owner ' )
228253 ->first ();
229254
230- if ($ ownerPermission ) {
255+ if ($ ownerPermission && $ ownerPermission -> user ) {
231256 return $ ownerPermission ->user ;
232257 }
233258
0 commit comments