getUser(); if (!$user instanceof User) { return false; } switch ($attribute) { case self::VIEW: return $this->canView($user, $token); case self::CREATE: return $this->canCreate($user, $token); case self::EDIT: return $this->canEdit($user, $token); case self::DELETE: return $this->canDelete($token); } return false; } /** * @param User $user * @param TokenInterface $token * @return bool */ protected function canView(User $user, TokenInterface $token) { if ($this->canEdit($user, $token)) { return true; } return false; } /** * @param User $user * @param TokenInterface $token * @return bool */ protected function canCreate(User $user, TokenInterface $token) { if ($this->canDelete($token)) { return true; } return false; } /** * @param User $user * @param TokenInterface $token * @return bool */ protected function canEdit(User $user, TokenInterface $token) { if ($this->canDelete($token)) { return true; } return false; } /** * @param TokenInterface $token * @return bool */ protected function canDelete(TokenInterface $token) { return $this->isFullyAuthenticated($token) && $this->hasRole('ROLE_TEAMLEAD', $token); } }