#php #cakephp
#php #cakephp
Вопрос:
На моем веб-сайте Cake установлена простая система аутентификации, которая разрешает пользователю доступ только к индексу и представлению моего posts_controller, но они не могут добавлять или редактировать их. Я делаю это с помощью следующего кода:
function beforeFilter()
{
parent::beforeFilter();
$this->Auth->allow(array('index','view'));
}
Теперь это работает нормально, поскольку они просто перенаправляются на страницу входа, где они могут войти для доступа к странице, но вместо получения доступа получают следующую ошибку:
Warning (512): Could not find AclComponent. Please include Acl in Controller::$components. [CORE/cake/libs/controller/components/auth.php, line 421]
Notice (8): Undefined property: AuthComponent::$Acl [CORE/cake/libs/controller/components/auth.php, line 527]
Fatal error: Call to a member function check() on a non-object in /Users/cameron/Sites/cake-1.3.8/cake/libs/controller/components/auth.php on line 527
Я не уверен, почему я получаю ошибки об ACL, поскольку я нигде не использую ACL в своем приложении, все, что я делаю, это просто говорю, что пользователь должен войти в систему, чтобы получить доступ к этим другим действиям.
Есть идеи, в чем проблема и как ее исправить?
Ответ №1:
Когда вы попадаете на строку 527 AuthComponent, означает ли это, что где-то вы настроили AuthComponent чем-то вроде этого:
$this->Auth->авторизовать = ‘действия’;
Если это так, это приводит к тому, что AuthComponent использует AclComponent для проверки, разрешено ли пользователю выполнять действие.
Смотрите http://book.cakephp.org/view/1250/Authentication #!/просмотр/1275/авторизация