我的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();
}
}
答案 0 :(得分:2)
解决。将userModel
与actionPath
一起追加。
$this->Auth->authorize = array(
AuthComponent::ALL => array('actionPath' => 'controllers/', 'userModel' => 'Player'),
'Actions',
'Controller'
);