CakePHP: использование Security :: allowControllers и Security :: allowActions - PullRequest
2 голосов
/ 31 января 2010

Я пытаюсь использовать Security :: allowControllers и Security :: allowActions. Итак, у меня есть контроллер, который выглядит примерно так

class AppController extends Controller {
    var $components = array('Security'); //other components
    //other stuff
}

class BookController extends AppController {
    function beforeFilter() {
        parent::beforeFilter();
        $this->Security->allowedControllers = array('Users');
        $this->Security->allowedActions = array('view');
        $this->Security->RequireAuth = array('search', 'results');
    }
    //other stuff
}

Действие «поиск» отображает форму, которая затем вызывает «результаты», чтобы показать результаты поиска. Я намеренно пытаюсь оказаться в черной дыре.

Что я понимаю о $ this-> Security-> allowControllers и $ this-> Security-> allowActions, я должен иметь возможность получать данные POST только из действия 'view' контроллера 'Users'. В частности, действие 'results' должно перенаправить меня в черную дыру, поскольку оно получает данные POST из действия 'search' контроллера 'Books'.

Но это не тот случай. Я даже могу делать запросы кросс-контроллеров и никогда не попадать в черные дыры, поэтому я полагаю, что я не правильно использую эти переменные. Как правильно запускать управление запросами кросс-контроллера?

Ответы [ 2 ]

0 голосов
/ 05 апреля 2011

Это хороший и короткий учебник по выполнению Auth с CakePHP 1.3: http://tv.cakephp.org/video/jasonwydro/2011/01/29/cakephp_1_3_auth_authentication_component_tutorial_-_administrator_login

0 голосов
/ 05 апреля 2011

Попробуйте это:

$this->Security->allowedFields = array('Model.fieldname', ...);

Вам нужно добавить поля, которых нет в модели, в позволенные поля, как я полагаю, ваше поле Model.search в форме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...