public function checkInTeam(User $user, Entity $entity) { $userTeamIds = $user->get('teamsIds'); if (!$entity->hasRelation('teams') || !$entity->hasField('teamsIds')) { return false; } if (!$entity->has('teamsIds')) { $entity->loadLinkMultipleField('teams'); } $teamIds = $entity->get('teamsIds'); if (empty($teamIds)) { return false; } foreach ($userTeamIds as $id) { if (in_array($id, $teamIds)) { return true; } } return false; }
public function checkScope(User $user, $scope, $action = null, $isOwner = null, $inTeam = null, $entity = null) { if ($user->isAdmin()) { return true; } $data = $this->getTable($user)->getScopeData($scope); return $this->getImplementation($scope)->checkScope($user, $data, $scope, $action, $isOwner, $inTeam, $entity); }