2014-11-21 89 views
0

我在數據庫中扮演了角色,其中一個角色是admin,另一個是store.when商店將登錄後,他將無法看到除store.i.e以外的任何控制器。我想隱藏的所有控制器和顯示時,商店將在CakePHP的密碼只有一個控制器和我的代碼是如何在cakrphp中隱藏控制器

public function isAuthorized($customer) { 
    $role = $customer['role']; 
    if(in_array($this->action,array('other controllers'))){ 
      if($role != 'admin'){ 
       return false; 

      } 
    } 
    return true; 
} 

但這不是工作..

+0

我知道一個方式,這不乾淨,你想要它嗎? – 2014-11-21 09:31:29

回答

0

這裏是我的路,因爲我不的ACL方法:

我創造我的所有控制器一個beforeFilter功能,並在那裏我檢查角色的用戶存儲在會議上,我重定向如果用戶不允許該控制器:

function beforeFilter(){ 
     $role = $this->Session->read('Auth.User.role'); 
     if($role=="simple") $this->redirect(array('controller'=>'store','action' => 'index')); 
}