Exemple #1
0
 public function applyRule(AccessRule $rule)
 {
     if ($rule->getRole()->getUri() == INSTANCE_ROLE_ANONYMOUS) {
         $mask = $rule->getMask();
         if (isset($mask['ext']) && !isset($mask['mod'])) {
             $this->whiteListExtension($mask['ext']);
         } elseif (isset($mask['ext']) && isset($mask['mod']) && !isset($mask['act'])) {
             $this->whiteListController(FuncHelper::getClassName($mask['ext'], $mask['mod']));
         } elseif (isset($mask['ext']) && isset($mask['mod']) && isset($mask['act'])) {
             $this->whiteListAction(FuncHelper::getClassName($mask['ext'], $mask['mod']), $mask['act']);
         } elseif (isset($mask['controller'])) {
             $this->whiteListController($mask['controller']);
         } elseif (isset($mask['act']) && strpos($mask['act'], '@') !== false) {
             list($controller, $action) = explode('@', $mask['act'], 2);
             $this->whiteListAction($controller, $action);
         } else {
             \common_Logger::w('Unregoginised mask keys: ' . implode(',', array_keys($mask)));
         }
     }
 }
Exemple #2
0
 /**
  * Test {@link FuncHelper::getClassName}}
  * @dataProvider getClassNameProvider 
  * @param string $extension
  * @param string $shortName
  * @param string $expectedClassName
  */
 public function testGetClassName($extension, $shortName, $expectedClassName)
 {
     $className = FuncHelper::getClassName($extension, $shortName);
     $this->assertTrue(is_string($className));
     $this->assertEquals($expectedClassName, $className);
 }
Exemple #3
0
 public function revokeRule(AccessRule $rule)
 {
     if ($rule->getRole()->getUri() === INSTANCE_ROLE_ANONYMOUS) {
         $ext = common_ext_ExtensionsManager::singleton()->getExtensionById('tao');
         $this->controllers = $ext->hasConfig(self::WHITELIST_KEY) ? $ext->getConfig(self::WHITELIST_KEY) : array();
         $mask = $rule->getMask();
         if (isset($mask['ext']) && !isset($mask['mod'])) {
             foreach (ControllerHelper::getControllers($mask['ext']) as $controllerClassName) {
                 unset($this->controllers[$controllerClassName]);
             }
         } elseif (isset($mask['ext']) && isset($mask['mod']) && !isset($mask['act'])) {
             unset($this->controllers[FuncHelper::getClassName($mask['ext'], $mask['mod'])]);
         } elseif (isset($mask['ext']) && isset($mask['mod']) && isset($mask['act'])) {
             $controller = FuncHelper::getClassName($mask['ext'], $mask['mod']);
             if (isset($this->controllers[$controller])) {
                 unset($this->controllers[$controller][$mask['act']]);
                 if (0 === count($this->controllers[$controller])) {
                     unset($this->controllers[$controller]);
                 }
             }
         } elseif (isset($mask['controller'])) {
             unset($this->controllers[$mask['controller']]);
         } elseif (isset($mask['act']) && strpos($mask['act'], '@') !== false) {
             list($controller, $action) = explode('@', $mask['act'], 2);
             if (isset($this->controllers[$controller])) {
                 unset($this->controllers[$controller][$action]);
                 if (0 === count($this->controllers[$controller])) {
                     unset($this->controllers[$controller]);
                 }
             }
         } else {
             \common_Logger::w('Unrecognised mask keys: ' . implode(',', array_keys($mask)));
         }
         $ext->setConfig(self::WHITELIST_KEY, $this->controllers);
     }
 }
 public static function getControllerFromUri($uri)
 {
     list($type, $extension, $controller) = explode('_', substr($uri, strpos($uri, '#') + 1));
     return FuncHelper::getClassName($extension, $controller);
 }