public function isAllowed($permission = null, $role = null)
    {
        if ($permission && strpos($permission, '/') !== false) {
            list($controllerClassName, $action) = $this->inferControllerAction($permission);
            $controllerClassName = $this->alias->resolveNS($controllerClassName);
            if (!isset($this->_acl[$controllerClassName])) {
                /** @var \ManaPHP\Rest\Controller $controllerInstance */
                $controllerInstance = new $controllerClassName;
                $this->_acl[$controllerClassName] = $controllerInstance->getAcl();
            }
        } else {
            $controllerInstance = $this->dispatcher->getControllerInstance();
            $controllerClassName = get_class($controllerInstance);
            $action = $permission ? lcfirst(Text::camelize($permission)) : $this->dispatcher->getAction();

            if (!isset($this->_acl[$controllerClassName])) {
                $this->_acl[$controllerClassName] = $controllerInstance->getAcl();
            }
        }

        $acl = $this->_acl[$controllerClassName];

        $role = $role ?: $this->identity->getRole();
        if (strpos($role, ',') === false) {
            return $this->isAclAllow($acl, $role, $action);
        } else {
            foreach (explode($role, ',') as $r) {
                if ($this->isAclAllow($acl, $r, $action)) {
                    return true;
                }
            }

            return false;
        }
    }
public function isAllowed($permission = null, $role = null)
    {
        if ($permission && strpos($permission, '/') !== false) {
            list($controllerClassName, $action) = $this->inferControllerAction($permission);
            $controllerClassName = $this->alias->resolveNS($controllerClassName);
            if (!isset($this->_acl[$controllerClassName])) {
                /** @var \ManaPHP\Rest\Controller $controllerInstance */
                $controllerInstance = new $controllerClassName;
                $this->_acl[$controllerClassName] = $controllerInstance->getAcl();
            }
        } else {
            $controllerInstance = $this->dispatcher->getControllerInstance();
            $controllerClassName = get_class($controllerInstance);
            $action = $permission ? lcfirst(Text::camelize($permission)) : $this->dispatcher->getAction();

            if (!isset($this->_acl[$controllerClassName])) {
                $this->_acl[$controllerClassName] = $controllerInstance->getAcl();
            }
        }

        $acl = $this->_acl[$controllerClassName];

        $role = $role ?: $this->identity->getRole();
        if (strpos($role, ',') === false) {
            return $this->isAclAllow($acl, $role, $action);
        } else {
            foreach (explode($role, ',') as $r) {
                if ($this->isAclAllow($acl, $r, $action)) {
                    return true;
                }
            }

            return false;
        }
    }
public function isAllowed ( $ permission = null , $ role = null ) { if ( $ permission && strpos ( $ permission , '/' ) !== false ) { list ( $ controllerClassName , $ action ) = $ this -> inferControllerAction ( $ permission ) ; $ controllerClassName = $ this -> alias -> resolveNS ( $ controllerClassName ) ; if ( ! isset ( $ this -> _acl [ $ controllerClassName ] ) ) { /** @var \ManaPHP\Rest\Controller $controllerInstance */ $ controllerInstance = new $ controllerClassName ; $ this -> _acl [ $ controllerClassName ] = $ controllerInstance -> getAcl ( ) ; } } else { $ controllerInstance = $ this -> dispatcher -> getControllerInstance ( ) ; $ controllerClassName = get_class ( $ controllerInstance ) ; $ action = $ permission ? lcfirst ( Text :: camelize ( $ permission ) ) : $ this -> dispatcher -> getAction ( ) ; if ( ! isset ( $ this -> _acl [ $ controllerClassName ] ) ) { $ this -> _acl [ $ controllerClassName ] = $ controllerInstance -> getAcl ( ) ; } } $ acl = $ this -> _acl [ $ controllerClassName ] ; $ role = $ role ? : $ this -> identity -> getRole ( ) ; if ( strpos ( $ role , ',' ) === false ) { return $ this -> isAclAllow ( $ acl , $ role , $ action ) ; } else { foreach ( explode ( $ role , ',' ) as $ r ) { if ( $ this -> isAclAllow ( $ acl , $ r , $ action ) ) { return true ; } } return false ; } }
Check whether a user is allowed to access a permission

@param string $permission
@param string $role

@return bool
Check whether a user is allowed to access a permission