Как убрать аутентификацию со страниц контроллера в CakePHP? - PullRequest
7 голосов
/ 18 декабря 2009

Я использую компонент авторизации CakePHP, и он находится в моем app_controller.php.

Теперь я хочу разрешить определенные виды из контроллера страниц. Как мне это сделать?

Ответы [ 3 ]

13 голосов
/ 18 декабря 2009

Скопируйте файл pages_controller.php в cake / libs / controllers в ваше приложение / controllers / dir. Затем вы можете изменить его, чтобы сделать все, что вы хотите. С компонентом auth типичный способ разрешить определенный доступ выглядит следующим образом:

class PagesController extends AppController {
 ...
 function beforeFilter() {
  $this->Auth->allow( 'action1', 'allowedAction2' );
 }
 ...

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

11 голосов
/ 23 января 2012

Вы можете добавить следующее в свой app_controller.

function beforeFilter() {
  if ($this->params['controller'] == 'pages') {
    $this->Auth->allow('*'); // or ('page1', 'page2', ..., 'pageN')
  }
}

Тогда вам не нужно копировать контроллер страниц.

5 голосов
/ 29 декабря 2013

Я не пробовал другие способы, но это также правильный способ разрешить доступ ко всем этим статическим страницам, так как отображение - это обычное действие. В app_controller:

//for all actions    
$this->Auth->allow(array('controller' => 'pages', 'action' => 'display'));

//for particular actions
$this->Auth->allow(array('controller' => 'pages', 'action' => 'display', 'home'));
$this->Auth->allow(array('controller' => 'pages', 'action' => 'display', 'aboutus'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...