Разрешить весь контроллер в CakePHP Auth и allow() не работает

Я пытался выполнить

$this->Auth->allow() в beforeFilter() но мне нужно добавить весь контроллер как исключение, то есть он должен быть общедоступным и не требовать входа пользователя.

Просто краткий способ выполнить $this->Auth->allow( every-function-in-this-controller )

Ответы?

Редактировать:

У меня есть это:

<?php

App::uses('AppController','Controller');

class AllzonesController extends AppController {

    public function __beforeFilter() {
        parent::beforeFilter();
        $this->Auth->allow('index');
    }

    public function index() {
        $this->layout = 'main';
        $this->set('Hello',"Hello world");
    }
}

Передача Auth-login()

2 ответа

Решение

То, что вы предложили, является подходящим способом того, что вы хотите сделать

public function beforeFilter() {
    $this->Auth->allow();
}

Чтение документации по API

Принимает список действий в текущем контроллере, для которых аутентификация не требуется, или нет параметров, разрешающих все действия.

Таким образом, функция без параметров должна позволять обычному пользователю (не зарегистрированному) получать доступ к каждому действию этого контроллера.

РЕДАКТИРОВАТЬ:

Извините, пропустил ссылку на версию в вашем теге. Здесь говорится

 $this->Auth->allow('*');

является подходящим способом для Cake 2.0 (и предыдущих версий, как отмечено @mark)

Для версий за пределами CakePHP 2.1

$this->Auth->allow()вместо $this->Auth->allow('*')

а также

На мой другой вопрос __beforeFiter это не волшебная функция!

<?php

App::uses('AppController','Controller');

class AllzonesController extends AppController {

    public function beforeFilter() {
        parent::beforeFilter();
        $this->Auth->allow('index');
    }

    public function index() {
        $this->layout = 'main';
        $this->set('Hello',"Hello world");
    }
}
Другие вопросы по тегам