cakePHP没有在用户/组添加上添加aro

时间:2012-12-10 00:06:37

标签: cakephp acl

我正在努力让aco / aro在我的应用程序上运行。 cakePHP教程说当我添加一个用户时,它应该自动添加到aros表中,但它不起作用。

用户模型

class User extends AppModel {
    var $name = 'User';
    public $belongsTo = array('Group');
    public $actsAs = array('Acl' => array('type' => 'requester'));

    function beforeFilter() {
            parent::beforeFilter(); 
            $this->Auth->allowedActions = array('*');
    }

    public function parentNode() {
        if (!$this->id && empty($this->data)) {
            return null;
        }
        if (isset($this->data['User']['group_id'])) {
            $groupId = $this->data['User']['group_id'];
        } else {
            $groupId = $this->field('group_id');
        }
        if (!$groupId) {
            return null;
        } else {
            return array('Group' => array('id' => $groupId));
        }
    }   
    public function afterSave() {
        $this->Aro->create();
        $this->Aro->save(array('alias'=>$this->field('username')));
    }       
}

不应该行

    public $actsAs = array('Acl' => array('type' => 'requester'));

执行cakePHP魔术并自动创建ARO?

1 个答案:

答案 0 :(得分:0)

假设您的数据库有名为“groups”和“users”的表,我相信afterSave()中的代码是不必要的。设置$actsAs后,您不必调用任何Aro方法。