public function isAllowed(RoutingRuleAbstract $routingRule) {
        $controller = $routingRule->getController();
        if (substr($controller, -10) == "Controller") {
            $controller = substr($controller,0, -10);
        }        

        //$function = new \ReflectionClass($routingRule->getController() . 'Controller');
        /*
        var_dump($function->inNamespace());
        var_dump($function->getName());
        var_dump($function->getNamespaceName());
        var_dump($function->getShortName());
         */
        //$controller = str_ireplace("Controller", "", $function->getShortName());

        $action = $routingRule->getAction();
        $access = $this->getAccess();
        $allowed = FALSE;
        if (array_key_exists($controller, $access)) {
            foreach ($access[$controller] as $rule) {
                if ($rule == "*") {
                    $allowed = TRUE;
                } else {
                    if ($allowed) { //After general acceptation like * can be an exception
                        $negation = FALSE;
                        if ($rule[0] == "!") {
                            $negation = TRUE;
                            $rule = substr($rule, 1);
                        }

                        if ($negation) { //By the moment is allowed but maybe there is an exception rule
                            if ($rule == $action) {
                                $allowed = FALSE;
                            }
                        }
                    } else {
                        if ($rule == $action) {
                            $allowed = TRUE;
                        }
                    }
                }
            }
        }
        return $allowed;
    }