Почему accessRules не работают в моем модуле yii, версия yii 1.1 - PullRequest
0 голосов
/ 16 декабря 2018

Я хочу, чтобы аутентифицированные пользователи могли получить доступ к моему

admin (модуль) / sysMessage (контроллер) / index (действие)

Мои accessRules указаны ниже:

public function accessRules()
    {
        return array(
            array('allow',  // allow only users in the 'admin' role access to our actions
                'actions'=>array('index','view', 'create', 'update', 'admin', 'delete'),
                'roles'=>array('admin'),
            ),
                array('allow',  
                        'actions'=>array('index','view'),
                        'roles'=>array('@'),
                ),
            array('deny',  // deny all users
                'users'=>array('*'),
            ),
        );
    }

Но когда аутентифицированные пользователи попытались получить доступ к моему

admin (модуль) / sysMessage (контроллер) / index (действие), они получили это сообщение:

"Ошибка 403 Вы не авторизованы для выполнения этого действия."

Не могли бы вы сказать мне, почему?

1 Ответ

0 голосов
/ 16 декабря 2018

Когда мы используем модуль / контроллер / действие, мы должны проверить

/yiiroot/trackstar/protected/modules/admin/yourModule.php

Я изменил «public function beforeControllerAction», как показано ниже, поэтому проблема будет решена.

см .: Создание AccessRules в модулях Yii Framework

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->isGuest){
     $url = Yii::app()->createUrl(Yii::app()->user->loginUrl);
     Yii::app()->user->returnUrl = Yii::app()->createUrl('/admin/');
     Yii::app()->request->redirect($url);
    }
     else {
       return true;
     }


     }
     else
     return false;
     }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...