Esempio n. 1
0
 /**
  * Does not respect params
  * 
  * @param string $url
  * @return boolean
  */
 public static function hasAccessUrl($url)
 {
     $user = common_session_SessionManager::getSession()->getUser();
     try {
         $resolver = new ActionResolver($url);
         return AclProxy::hasAccess($user, $resolver->getController(), $resolver->getAction(), array());
         $className = $resolver->getController();
     } catch (ResolverException $e) {
         return false;
     }
 }
Esempio n. 2
0
 /**
  * Get the sections of the current extension's structure
  *
  * @param string $shownExtension
  * @param string $shownStructure
  * @return array the sections
  */
 private function getSections($shownExtension, $shownStructure)
 {
     $sections = array();
     $user = common_Session_SessionManager::getSession()->getUser();
     $structure = MenuService::getPerspective($shownExtension, $shownStructure);
     if (!is_null($structure)) {
         foreach ($structure->getChildren() as $section) {
             $resolver = new ActionResolver($section->getUrl());
             if (FuncProxy::accessPossible($user, $resolver->getController(), $resolver->getAction())) {
                 foreach ($section->getActions() as $action) {
                     $resolver = new ActionResolver($action->getUrl());
                     if (!FuncProxy::accessPossible($user, $resolver->getController(), $resolver->getAction())) {
                         $section->removeAction($action);
                     }
                 }
                 $sections[] = $section;
             }
         }
     }
     return $sections;
 }