ACL - 在哪里配置自定义userModel以进行授权?

时间:2012-10-19 05:05:39

标签: cakephp cakephp-2.0

我的Auth支持Player而不是默认User模型。 我最近为我的应用配置了ACL,并且在我的return false函数中尝试通过isAuthorized($player)进行测试时发生了以下错误:

AclNode::node() - Couldn't find Aro node identified by
Array ( [Aro0.model] => User [Aro0.foreign_key] => 1 )

假设Aro0.model不是Player吗?我无法找到Auth->authorize的更改位置。 Auth-authenticate工作正常,因为我有userModel选项允许我为用户登录指定自定义模型。

这是我的AppController     

class AppController extends Controller
{
    public $components = array(
        'Session',
        'Acl',
        'RequestHandler',
        'Auth' => array(

            'authorize' => array(
                'controller',
                'Actions' => array('actionPath' => 'controllers'),
            ),

            'authenticate' => array(
                'Form' => array(
                    'userModel' => 'Player',
                    'fields' => array('username' => 'email', 'password' => 'password'),
                    )
                )
            ),
        );
    public $helpers = array('Html', 'Form', 'Session');

    function isAuthorized($player)
    {
        //var_dump($player); die;
        return false;
        return $this->Auth->loggedIn();
    }

}

1 个答案:

答案 0 :(得分:2)

解决。将userModelactionPath一起追加。

$this->Auth->authorize = array(
    AuthComponent::ALL => array('actionPath' => 'controllers/', 'userModel' => 'Player'),
    'Actions',
    'Controller'
);