【问题标题】:Why Are My CakePHP AROs Not Being Created?为什么我的 CakePHP ARO 没有被创建?
【发布时间】:2011-06-13 21:03:46
【问题描述】:

我按照 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 回到正轨吗?

编辑:

我在 User 模型的 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 创作……可能会教我在不完全理解它们是什么的情况下添加随机代码 sn-ps至少在做!

【问题讨论】:

    标签: mysql cakephp acl authentication


    【解决方案1】:

    好的,我是新手
    我无法理解您的问题,但
    现在我将 Acl 组件与 alaxos acl 插件一起使用
    我尝试了解修改后的树遍历算法
    并设置aro,aco,aro_aco,group table的基础数据
    以及插件的一些要求
    我建议你使用this

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多