Почему мои CakePHP ARO не создаются? - PullRequest
2 голосов
/ 14 июня 2011

Я следовал простому учебнику ACL-приложения CakePHP Cookbook и какое-то время был прекрасен и хорош. Когда я создавал пользователя, мои ARO также создавались автоматически, и без особых усилий я смог дать всем разрешения на правильные действия.

Хотя мое приложение стало более сложным. Когда я создаю «Риэлтор», я создаю для них пользователя в функции 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 в нужное русло?

EDIT:

У меня было это в afterSave модели User, которая, кажется, вызывала различные виды проблем:

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);
    }
}

. как-то портит мое создание ARO ... возможно, научит меня добавлять случайные фрагменты кода, по крайней мере, не полностью понимая, что они делают!

1 Ответ

0 голосов
/ 29 июня 2011

Хорошо, я новичокЯ не могу понять вашу проблему, нотеперь я использую компонент Acl с плагином aclaxos aclЯ пытаюсь понять модифицированный алгоритм обхода дереваи установите основные данные для aro, aco, aro_aco, групповой таблицыи некоторые требования к плагинуЯ предлагаю вам использовать это

...