CakePHP函数是授权的

时间:2015-04-24 17:40:20

标签: cakephp-2.0

我直接按照Cakebook的说明隐藏我管理系统中普通用户的某些内容。因此,只有管理员才能访问所有页面。但是,我无法运行任何访问的用户都可以看到所有。以下代码:

public function beforeFilter(){
    $this->Auth->authenticate = array('Form' => array(
        'userModel' => 'Usuario',
        'fields' => array(
            'username' => 'login',
            'password' => 'senha')));
    $this->Auth->loginAction = array(
        'controller' => 'usuarios',
        'action' => 'login');


    parent::beforeFilter();
}

    public function isAuthorized($user) {
    if (isset($user['role']) && $user['role'] === 'admin') {
        return true; 
    }
    return false; 
}

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解正确,但我会尝试一下。

我已经清理了你的代码,做了一些缩进并且更具可读性(至少对我而言)。我还删除了users。的 AppController.php:

parent::beforeFilter();

现在只有具有admin角色的用户才能访问您的网页。如果您希望任何用户有权发表评论,这是一个如何让他的例子。的 CommentsController.php:

public function beforeFilter(){
    // You don't need this line: parent::beforeFilter();
    $this->Auth->authenticate = array('Form' => array(
        'userModel' => 'Usuario',
        'fields' => array(
            'username' => 'login',
            'password' => 'senha'
            )
        )
    );
    $this->Auth->loginAction = array(
        'controller' => 'usuarios',
        'action' => 'login'
    );
}

public function isAuthorized($user) {
    if (isset($user['role']) && $user['role'] === 'admin') {
        return true; 
    }
    return false; 
}

现在管理员可以查看每个页面,但注册用户只能看到 app / comments / add