layout && in_array(Yii::$app->id, [AppEnum::BACKEND, AppEnum::MERCHANT])) { $this->layout = '@' . Yii::$app->id . '/views/layouts/addon'; } $this->admin = Yii::$app->user->identity; if(empty($this->admin)) return $this->redirect(['/admin/auth/login']); $mall = Yii::$app->session->get('mall'); if(empty($mall)){ // 商城session过期 switch($this->admin->admin_type){ case Admin::ADMIN_TYPE_SUPER: case Admin::ADMIN_TYPE_AGENT: return $this->redirect(['/admin/mall/index']); break; default: return $this->redirect(['/admin/auth/login']); } } $this->mall = $mall; $this->mall_id = $mall['id']; } /** * @return array */ public function behaviors() { return [ 'actionLog' => [ 'class' => ActionLogBehavior::class ] ]; } /** * @param $action * @return bool * @throws UnauthorizedHttpException * @throws \yii\web\BadRequestHttpException */ public function beforeAction($action) { if (!parent::beforeAction($action)) { return false; } // 每页数量 $this->pageSize = Yii::$app->request->get('per-page', 10); $this->pageSize > 50 && $this->pageSize = 50; // 后台进行权限校验 if (in_array(Yii::$app->id, [AppEnum::MERCHANT, AppEnum::BACKEND])) { // 判断当前模块的是否为主模块, 模块+控制器+方法 $permissionName = Yii::$app->controller->route; // 判断是否忽略校验 if (in_array($permissionName, Yii::$app->params['noAuthRoute'])) { return true; } // 开始权限校验 if (!Auth::verify($permissionName)) { if($this->request->isAjax){ return $this->error('对不起,您现在还没获此操作的权限'); } throw new \yii\web\ForbiddenHttpException('对不起,您现在还没获此操作的权限'); } // 记录上一页跳转 $this->setReferrer($action->id); } return true; } /** * 获取配置信息 * * @return mixed */ protected function getConfig() { return AddonHelper::getConfig(false); } /** * 写入配置信息 * * @param $config * @return bool */ protected function setConfig($config) { return AddonHelper::setConfig($config); } }