*/
public function restrictEntityQuery(Builder $query, string $morphClass): Builder
{
- // TODO - Leave this as the new admin workaround?
- // Or auto generate collapsed role permissions for admins?
- if (\user()->hasSystemRole('admin')) {
- return $query;
- }
-
$this->applyPermissionsToQuery($query, $query->getModel()->getTable(), $morphClass, 'id', '');
return $query;
/**
* @param Builder|QueryBuilder $query
- * @return void
*/
- protected function applyPermissionsToQuery($query, string $queryTable, string $entityTypeLimiter, string $entityIdColumn, string $entityTypeColumn)
+ protected function applyPermissionsToQuery($query, string $queryTable, string $entityTypeLimiter, string $entityIdColumn, string $entityTypeColumn): void
{
+ if ($this->currentUser()->hasSystemRole('admin')) {
+ return;
+ }
+
$this->applyFallbackJoin($query, $queryTable, $entityTypeLimiter, $entityIdColumn, $entityTypeColumn);
$this->applyRoleJoin($query, $queryTable, $entityTypeLimiter, $entityIdColumn, $entityTypeColumn);
$this->applyUserJoin($query, $queryTable, $entityTypeLimiter, $entityIdColumn, $entityTypeColumn);
- $this->applyPermissionWhereFilter($query, $queryTable, $entityTypeLimiter, $entityTypeColumn);
+ $this->applyPermissionWhereFilter($query, $entityTypeLimiter, $entityTypeColumn);
}
/**
*/
public function restrictEntityRelationQuery($query, string $tableName, string $entityIdColumn, string $entityTypeColumn)
{
- // TODO - Apply admin allow all as per above query thing
$this->applyPermissionsToQuery($query, $tableName, '', $entityIdColumn, $entityTypeColumn);
// TODO - Test page draft access (Might allow drafts which should not be seen)
$morphClass = (new Page())->getMorphClass();
$this->applyPermissionsToQuery($query, $tableName, $morphClass, $pageIdColumn, '');
- // TODO - Admin workaround as above
// TODO - Draft display
return $query;
}