| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <?php
- namespace wechat\modules\cp;
- use Yii;
- /**
- * cp module definition class
- */
- class Module extends \yii\base\Module
- {
- public $layout = 'main';
- /**
- * @inheritdoc
- */
- public $controllerNamespace = 'wechat\modules\cp\controllers';
- /**
- * 不需要登录的路由,由控制器名称加上方法名称组成
- * @var array
- */
- public $notNeedLogin = [];
- /**
- * 访问控制的白名单,为小写的控制器名称
- * @var array
- */
- public $whiteList = ['account', 'common', 'default'];
- /**
- * 超级管理员的id,拥有所有权限
- */
- public $superAdmin = [1];
- /**
- * @inheritdoc
- */
- public function init()
- {
- parent::init();
- // custom initialization code goes here
- Yii::$app->errorHandler->errorAction = 'cp/default/error';
- }
- /**
- * @param \yii\base\Action $action
- * @return bool
- */
- public function beforeAction($action)
- {
- if (!Yii::$app->user->id) {
- $controllerId = $action->controller->id;
- $actionId = $action->id;
- $route = $controllerId . '/' . $actionId;
-
- $loginUrl = Yii::$app->user->loginUrl;
- if (is_array($loginUrl)) {
- $loginUrl = $loginUrl[0];
- }
- $this->notNeedLogin[] = $loginUrl;
- if (!in_array($route, $this->notNeedLogin)) {
- $action->controller->redirect(Yii::$app->user->loginUrl);
- return false;
- }
- }
-
- return parent::beforeAction($action);
- }
- }
|