CakePhp ACL-разрешения - PullRequest
       12

CakePhp ACL-разрешения

0 голосов
/ 26 июля 2010

Проверяя мое приложение, я увидел, что каждый пользователь может получить доступ ко всем действиям в нем.Я использую встроенный ACL-компонент cakePhp ... Правильно проверять права доступа через терминалы, разрешено или нет пользователю вызывать определенное действиеНо как только я проверяю приложение в браузере, все пользователи получают доступ к каждому действию.Любая подсказка, что может делать это?

1 Ответ

0 голосов
/ 31 июля 2010

CakePHP может автоматически обрабатывать все, если вы используете встроенные компоненты Auth и ACL. Для начала вы можете убедиться, что у вас есть файл app_controller.php в папке приложения. Моя выглядит примерно так:

<?php

class AppController extends Controller {

    var $helpers = array('Form', 'Html', 'Javascript', 'Time');
    var $components = array( 'Acl', 'Auth', 'Session', 'Cookie');    

    function beforeFilter() {  
        $this->Auth->authorize = 'actions';
        $this->Auth->actionPath = 'controllers/';
        $this->Auth->authError = ' Access Denied!';

        $this->Auth->loginRedirect = '/registrations';
        $this->__checkAuth();
    }

    private function __checkAuth() {
        $currentUser = $this->Auth->user();
        $currentUser = $currentUser['User'];
        $this->set(compact('currentUser'));
    }

}
?>

Если вы авторизуете «действия», попробуйте включить этот код в файл app_controller.php или создайте его, если у вас его еще нет. Затем начните просмотр, чтобы убедиться, что он внес какие-либо изменения.

Если у вас есть собственный код в beforeFilter каждого контроллера, вам также нужно добавить одну строку кода для каждого контроллера.

function beforeFilter(){
    parent::beforeFilter(); 
}

Любой beforeFilter (даже пустой), помещенный в контроллер, будет переопределять beforeFilter в AppController, если вы специально не вызовите beforeFilter для AppController с помощью кода выше.

Вы также можете найти некоторые из лучших руководств по использованию ACL CakePHP здесь: http://aranworld.com/article/161/cakephp-acl-tutorial-what-is-it

...