为什么我的CakePHP ARO没有被创建?

时间:2011-06-13 21:03:47

标签: mysql cakephp acl authentication

我按照CakePHP Cookbook的简单ACL应用程序教程进行了一段时间的精细和花花公子。当我创建一个用户时,我的ARO也是自动创建的,没有太多努力,我就能给每个人一些正确行动的权限。

我的应用程序现在变得更加复杂了。当我创建一个“Realtor”时,我在Realtor模型的afterSave函数中为它们创建了一个用户,如下所示:

App::import( 'Component', 'Auth' );
  $this->Auth = new AuthComponent();

  $this->User->create();
  $this->User->set(array(
    'username' => $this->data['Realtor']['email'],
    'password' => $this->Auth->password($this->data['Realtor']['password']),
    'usergroup_id' => 2,
    'realtor_num' => $this->id
  ));
  if ($this->User->save()) {
    $this->save(array('user_id'=>$this->User->id));
  } else { 
    //error 
  }

不幸的是,虽然这是成功创建用户,而且数据似乎都符合我的期望,但我似乎不再获得ARO。

我的用户组模型包含

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

除此之外,我不知道如何说服我的应用程序生成ARO 有什么我可以忘记的,这会帮助我让我的ACL回到正轨吗?

编辑:

我在用户模型的afterSave中有这个,这似乎造成了各种各样的麻烦:

function afterSave($created) {
    if (!$created) {
        $parent = $this->parentNode();
        $parent = $this->node($parent);
        $node = $this->node();
        $aro = $node[0];
        $aro['Aro']['parent_id'] = $parent[0]['Aro']['id'];
        $this->Aro->save($aro);
    }
}

(由本文提供:http://mark-story.com/posts/view/auth-and-acl-automatically-updating-user-aros)我不知道是否会以某种方式污染我的ARO创作...可能教我添加随机代码片段而不完全理解它们是什么做,至少!

1 个答案:

答案 0 :(得分:0)

好的我是新手 我无法理解你的问题但是 现在我使用acl组件和alaxos acl插件
我试着理解修改后的树遍历算法
并设置aro,aco,aro_aco,group table的基本数据  和插件的一些要求
我建议你使用this