我無法使用ACL。在我的CoreUsersController中,我進行以下調用:Cakephp 2.1重命名沒有ACL的ACL表格
if(!$this->Acl->check('User::'.$user['User']['id'], 'CoreUser', 'read')) {
die('PERM DENIED');
}
ACL作爲組件包含在我的AppController中。與數據庫表的樣子:
- 表 「ACOS」
- 表 「core_groups」(如阿羅斯)
- 表 「aros_acos」 作爲core_groups和ACOS之間的連接。
這裏是引發的錯誤: 錯誤:模型阿羅表阿羅斯在數據源默認沒有被發現。
我的代碼:
1.用戶型號:
App::uses('AuthComponent', 'Controller/Component');
class CoreUser extends AppModel {
public $useDbConfig = 'default';
public $useTable = 'core_users';
public $hasAndBelongsToMany = array(
'MemberOf' => array(
'className' => 'CoreGroup',
'joinTable' => 'core_users_groups',
'foreignKey' => 'user_id',
'associationForeignKey' => 'group_id'
)
);
public $name = 'User';
public $actsAs = array('Acl' => array('type' => 'both'));
public function parentNode() {
// stuff in here should be correct
}
}
2組,型號:
App::uses('AppModel', 'Model');
App::uses('AuthComponent', 'Controller/Component');
class CoreGroup extends AppModel {
public $useDbConfig = 'default';
public $useTable = 'core_groups';
public $hasAndBelongsToMany = array(
'Member' => array(
'className' => 'CoreUser',
'joinTable' => 'core_users_groups',
'foreignKey' => 'group_id',
'associationForeignKey' => 'user_id'
)
);
public $name = 'Group';
public $actsAs = array('Acl' => array('type' => 'requester'));
public function parentNode() {
return null;
}
}
我的問題:如何告訴ACL使用 「core_groups」 - 表,而不是 「阿羅斯」 - 表?注意:我將Cake-Book建議的「ActsAs」添加到兩個模型中!
你是否在shell中使用這個命令:。/控制檯/蛋糕架構創建DbAcl來創建acl表,或者你手動做到這一點? – skywalker