Exemplo n.º 1
0
 public function hasAccess(User $user, Resource $resource, $mask)
 {
     $resourceRights = $resource->getResourceRights();
     $userRoles = $this->tokenStorage->getToken()->getRoles();
     $hasAccess = false;
     foreach ($userRoles as $userRole) {
         foreach ($resourceRights as $resourceRight) {
             if ($userRole->getRole() == $resourceRight->getRole()->getName() && $resourceRight->getMask() >= ReservationController::ADMIN) {
                 $hasAccess = true;
                 break;
             }
             if ($userRole->getRole() == $resourceRight->getRole()->getName() && $resourceRight->getMask() & $mask) {
                 if (ReservationController::BOOK === $mask && $this->tokenStorage->getToken()->getUser() === $user || ReservationController::BOOK !== $mask) {
                     $hasAccess = true;
                     break;
                 }
             }
         }
     }
     return $hasAccess;
 }