/** * @inheritdoc */ public function beforeAction($action) { if (!AdminUser::isLoged()) { if (!in_array($action->id, ['login'])) { if ($this->request->getIsAjax()) { $this->setError('login.failed', 401); $this->setResponseData('data', Url::toRoute('/admin/default/login')); } else { $this->redirect(Url::toRoute('/admin/default/login')); } } } else { /** * @var $this->user \liuxy\admin\models\AdminUser */ $this->user = AdminUser::getUser(); /** * 校验权限 */ if (!AdminUser::hasPermission($this->user->id, $action->controller->route)) { if (!in_array($action->id, ['deny', 'login', 'logout', ''])) { if ($this->request->getIsAjax()) { $this->setError(Module::t('deny'), 403); } else { $this->redirect(Url::toRoute('/admin/default/deny')); } } } } return parent::beforeAction($action); // TODO: Change the autogenerated stub }
/** * 登录 */ public function actionLogin() { $this->layout = false; $userName = $this->get('username', ''); $password = $this->get('password', ''); if ($this->request->getIsAjax()) { if (AdminUser::auth($userName, $password)) { $this->setResponseData('message', Module::t('login.success')); $this->setResponseData('data', Url::toRoute(\Yii::$app->defaultRoute)); } else { $this->setError(Module::t('login.failed'), 401); $this->setResponseData('data', Url::toRoute('login')); } } else { if (AdminUser::isLoged()) { $this->goHome(); } } }