2014-05-12 55 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