2013-01-02 69 views
0

使用蛋糕acl我想設置登錄用戶的權限。我有這樣的登錄功能:acl權限

if ($user = $this->Auth->user()) { 
    CakeLog::write('debug', 'this->Auth->user'); 
    //debug($user['User']); 
    $userGroup = $this->User->Group->findById($user['User']['group_id']); 
    $aro = $this->Acl->Aro->find('first', array(
     'conditions' => array(
      'Aro.model' => 'Group', 
      'Aro.foreign_key' => $this->_user['User']['group_id'], 
     ), 
    )); 
    $acos = $this->Acl->Aco->children(); 
    foreach ($acos as $aco) { 
    $permission = $this->Acl->Aro->Permission->find('first', array(
     'conditions' => array(
      'Permission.aro_id' => $aro['Aro']['id'], 
      'Permission.aco_id' => $aco['Aco']['id'], 
     ), 
    )); 
    if (isset($permission['Permission']['id'])) { 
     if ($permission['Permission']['_create'] == 1 || 
      $permission['Permission']['_read'] == 1 || 
      $permission['Permission']['_update'] == 1 || 
      $permission['Permission']['_delete'] == 1) { 
       $this->Session->write(
        'Auth.Permissions.' . $permission['Aco']['alias'], true 
       ); 
       if (!empty($permission['Aco']['parent_id'])) { 
        $parentAco = $this->Acl->Aco->find('first', array(
         'conditions' => array(
          'id' => $permission['Aco']['parent_id'] 
         ) 
        )); 
        $this->Session->write(
         'Auth.Permissions.' . $permission['Aco']['alias'] 
         . '.' . $parentAco['Aco']['alias'], true 
        ); 
       } 
      } 
     } 
    } 
} 

我收到此錯誤:

未定義的屬性:UsersController :: $ _用戶[APP \控制器\ users_controller.php中,行82]

我可以用'$ this - > _ user ['User'] ['group_id']'來更改'$ this - > _ user ['User'] ['group_id']',這是否正確。如果不是我應該設置公共$ _user =?

感謝

+0

什麼是第82行?所有的錯誤意味着你缺少類上的$ _user變量。 – jeremyharris

+0

這是行82'Aro.foreign_key'=> $ this - > _ user ['User'] ['group_id'],' – rstewart

+0

我可以設置_user變量,但是_user應該設置爲什麼?它是否與$ user ['User'] ['group_id']相同? – rstewart

回答

0

我換成$用戶_user,它似乎是工作。

-1

,如果你需要驗證用戶的GROUP_ID您可以撥打

AuthComponent::user('group_id');