Разрешение определенной страницы в Cakephp - PullRequest
5 голосов
/ 29 апреля 2011

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

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

Ответы [ 2 ]

4 голосов
/ 30 апреля 2011

Боюсь, вы не можете сделать это, используя стандартные функции, которые вам дает AuthComponent. Вы должны создать свою собственную логику для этого в действии pages_controller display.

Нечто подобное (стиль псевдокода)

# in app/controllers/pages_controller.php
var $allowedPages = array('one', 'two');

function display($page) {
    if(in_array($page, $allowedPages) || $this->User->loggedin) {
        $this->render($page);
    } else {
        $this->render('not_allowed');
    }
}
1 голос
/ 05 июля 2016

В CakePHP 3.x вы можете достичь своей цели, указав полное действие в действии PagesController beforeFilter:

public function beforeFilter(Event $event) {
  parent::beforeFilter($event);

  $this->Auth->allow(
    ['controller' => 'pages', 'action' => 'display', 'about']
  );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...