/** * returns the modules of an extension from the ontology * * @access public * @author Jerome Bogaerts, <*****@*****.**> * @param string extensionID * @return array */ public static function getModules($extensionId) { $returnValue = array(); foreach (ControllerHelper::getControllers($extensionId) as $controllerClassName) { $shortName = strpos($controllerClassName, '\\') !== false ? substr($controllerClassName, strrpos($controllerClassName, '\\') + 1) : substr($controllerClassName, strrpos($controllerClassName, '_') + 1); $uri = funcAcl_models_classes_AccessService::singleton()->makeEMAUri($extensionId, $shortName); $returnValue[$uri] = new core_kernel_classes_Resource($uri); } return (array) $returnValue; }
public static function flushExtensionAccess($extensionId) { self::getCacheImplementation()->remove(self::CACHE_PREFIX_EXTENSION . $extensionId); foreach (ControllerHelper::getControllers($extensionId) as $controllerClassName) { self::flushControllerAccess($controllerClassName); } }
private function whiteListExtension($extensionId) { foreach (ControllerHelper::getControllers($extensionId) as $controllerClassName) { $this->whiteListController($controllerClassName); } }
protected function buildExtensionData(common_ext_Extension $extension, $roleUri, $includedRoleUris) { $extAccess = funcAcl_helpers_Cache::getExtensionAccess($extension->getId()); $extAclUri = funcAcl_models_classes_AccessService::singleton()->makeEMAUri($extension->getId()); $atLeastOneAccess = false; $allAccess = in_array($roleUri, $extAccess); $inherited = count(array_intersect($includedRoleUris, $extAccess)) > 0; $controllers = array(); foreach (ControllerHelper::getControllers($extension->getId()) as $controllerClassName) { $controllerData = $this->buildControllerData($controllerClassName, $roleUri, $includedRoleUris); $atLeastOneAccess = $atLeastOneAccess || $controllerData['access'] != self::ACCESS_NONE; $controllers[] = $controllerData; } usort($controllers, function ($a, $b) { return strcmp($a['label'], $b['label']); }); $access = $inherited ? 'inherited' : ($allAccess ? 'full' : ($atLeastOneAccess ? 'partial' : 'none')); return array('uri' => $extAclUri, 'label' => $extension->getName(), 'access' => $access, 'modules' => $controllers); }