2014-05-12 112 views
0

模塊\管理員\分量\ AdminController:創建模塊AccessRules Yii框架

class AdminController extends CController 
{ 
    public function filters() 
    { 
     return array('accessControl'); 
    } 

    public function accessRules() 
    { 
     return array(
      array('deny', 'users' => array('*')), 
     ); 
    } 
} 
模塊

\管理員\ \控制器Sitecontroller:

class SiteController extends AdminController 
{ 
    public function actionIndex() 
    { 
     $this->render('index'); 
    } 

     public function actionLogin() 
     { 
       $this->render('login'); 
     } 
} 

但當訪問mydomain.site/administrator/網站/索引,它不重定向到mydomain.site/administrator/site/login重定向到mydomain.site/site/login(默認登錄),我希望它重定向到mydomain.site/administrator/site/login

有人可以幫助我嗎?

+0

請檢查下面的答案。只有在提到只允許認證用戶使用'action'的情況下,'login'的重定向纔會發生。 –

回答

0

試試這個:

array('allow', // allow authenticated user to perform below actions 
     'actions'=>array('index'), 
     'users'=>array('@'), 
), 
array('deny', // deny all users 
     'users'=>array('*'), 
), 

這樣一來,當請求site/index的URL,因爲我們已經設置index將只允許通過認證的用戶,請求將被重定向到site/login(或默認登錄) 。

我希望它有幫助。

0

CWebUser::$loginUrl過濾器被調用之前:

class AdminModule extends CWebModule 
{ 
public function init() 
    { 
    $this->setImport(array(
    'admin.models.*', 
    //'application.models.*', 
    'admin.components.*', 
)); 
} 

public function beforeControllerAction($controller, $action) 
{ 
    if(parent::beforeControllerAction($controller, $action)) 
{ 
    // this method is called before any module controller action is performed 
    // you may place customized code here 
if (!Yii::app()->user->checkAccess('admin')) { 
if(Yii::app()->user->isGuest){ 
    $url = Yii::app()->createUrl(Yii::app()->user->loginUrl); 
Yii::app()->user->returnUrl = Yii::app()->createUrl('/admin/'); 
Yii::app()->request->redirect($url); 
} 
else { 
    throw new CHttpException(403,'Have no permission'); 
} 
} 
return true; 
} 
else 
return false; 
} 
} 
+0

這是錯誤的:這個網頁有一個重定向循環 – user3510768

+0

更新回答。 – Rorschach

+0

它工作,但當管理員登錄成功,它重定向管理主頁,這是錯誤的:您無權執行此操作。你能幫我嗎? – user3510768