/** * 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; } }
/** * 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; }