use BookStack\Auth\Permissions\JointPermission;
use BookStack\Auth\Permissions\JointPermissionBuilder;
use BookStack\Auth\Permissions\PermissionApplicator;
-use BookStack\Entities\Tools\SearchIndex;
use BookStack\Entities\Tools\SlugGenerator;
use BookStack\Interfaces\Deletable;
use BookStack\Interfaces\Favouritable;
use BookStack\Interfaces\Sluggable;
use BookStack\Interfaces\Viewable;
use BookStack\Model;
+use BookStack\References\Reference;
+use BookStack\Search\SearchIndex;
+use BookStack\Search\SearchTerm;
use BookStack\Traits\HasCreatorAndUpdater;
use BookStack\Traits\HasOwner;
use Carbon\Carbon;
* @property Carbon $deleted_at
* @property int $created_by
* @property int $updated_by
- * @property bool $restricted
* @property Collection $tags
*
* @method static Entity|Builder visible()
*/
public function permissions(): MorphMany
{
- return $this->morphMany(EntityPermission::class, 'restrictable');
+ return $this->morphMany(EntityPermission::class, 'entity');
}
/**
* Check if this entity has a specific restriction set against it.
*/
- public function hasRestriction(int $role_id, string $action): bool
+ public function hasPermissions(): bool
{
- return $this->permissions()->where('role_id', '=', $role_id)
- ->where('action', '=', $action)->count() > 0;
+ return $this->permissions()->count() > 0;
}
/**
return $this->morphMany(Deletion::class, 'deletable');
}
+ /**
+ * Get the references pointing from this entity to other items.
+ */
+ public function referencesFrom(): MorphMany
+ {
+ return $this->morphMany(Reference::class, 'from');
+ }
+
+ /**
+ * Get the references pointing to this entity from other items.
+ */
+ public function referencesTo(): MorphMany
+ {
+ return $this->morphMany(Reference::class, 'to');
+ }
+
/**
* Check if this instance or class is a certain type of entity.
* Examples of $type are 'page', 'book', 'chapter'.