예제 #1
0
 public function activateRoles(__UserSession &$user_session)
 {
     $user_session->reset();
     $roles = $this->getRoles();
     foreach ($roles as &$role) {
         $user_session->addActiveRole($role);
     }
 }
 /**
  * Checks if current user has access to a given url. This method just check if the
  * action controller that will be executed as consequence of the url is accessible
  * by the current user.
  *
  * @param string $url The url to check access to
  * @return boolean true if the user has access to the given url
  */
 public function hasAccessToUrl($url)
 {
     $return_value = true;
     //by default
     $uri = __UriFactory::getInstance()->createUri($url);
     $action_identity = $uri->getActionIdentity();
     $controller_code = $action_identity->getControllerCode();
     $controller_definition = __ActionControllerResolver::getInstance()->getActionControllerDefinition($controller_code);
     if ($controller_definition instanceof __ActionControllerDefinition) {
         $required_permission = __PermissionManager::getInstance()->getPermission($controller_definition->getRequiredPermissionId());
         if (!$required_permission->isJuniorPermissionOf($this->_user_session->getActiveRoles()->getEquivalentPermission())) {
             $return_value = false;
         }
     }
     return $return_value;
 }