From a7b28b8afd9662008cf76317629d1b99d6e4c64a Mon Sep 17 00:00:00 2001 From: Chenx221 Date: Thu, 21 Mar 2024 14:00:10 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=82=E9=85=8D=E5=88=86=E7=A6=BB=E5=90=8E?= =?UTF-8?q?=E7=9A=84layout=20=E9=80=82=E9=85=8D=E7=AE=A1=E7=90=86=E5=91=98?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E5=90=8E=E4=BA=8B=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/CollectionController.php | 11 +++++++ controllers/ShareController.php | 11 +++++++ controllers/SiteController.php | 11 +++++++ controllers/UserController.php | 45 ++++++++++++++++++++++++---- 4 files changed, 72 insertions(+), 6 deletions(-) diff --git a/controllers/CollectionController.php b/controllers/CollectionController.php index 40b6a21..1ecbff1 100644 --- a/controllers/CollectionController.php +++ b/controllers/CollectionController.php @@ -60,7 +60,18 @@ class CollectionController extends Controller ] ); } + public function init(): void + { + parent::init(); + if (Yii::$app->user->can('admin')) { + $this->layout = 'admin_main'; + }elseif (Yii::$app->user->isGuest) { + $this->layout = 'guest_main'; + } else { + $this->layout = 'main'; + } + } /** * Lists all CollectionTasks models. * diff --git a/controllers/ShareController.php b/controllers/ShareController.php index 03160f6..724eb1e 100644 --- a/controllers/ShareController.php +++ b/controllers/ShareController.php @@ -60,7 +60,18 @@ class ShareController extends Controller ] ); } + public function init(): void + { + parent::init(); + if (Yii::$app->user->can('admin')) { + $this->layout = 'admin_main'; + }elseif (Yii::$app->user->isGuest) { + $this->layout = 'guest_main'; + } else { + $this->layout = 'main'; + } + } /** * Lists all Share models. * diff --git a/controllers/SiteController.php b/controllers/SiteController.php index 12816fb..5d2f18a 100644 --- a/controllers/SiteController.php +++ b/controllers/SiteController.php @@ -35,7 +35,18 @@ class SiteController extends Controller ], ]; } + public function init(): void + { + parent::init(); + if (Yii::$app->user->can('admin')) { + $this->layout = 'admin_main'; + }elseif (Yii::$app->user->isGuest) { + $this->layout = 'guest_main'; + } else { + $this->layout = 'main'; + } + } /** * {@inheritdoc} */ diff --git a/controllers/UserController.php b/controllers/UserController.php index 9861e78..0cf54f5 100644 --- a/controllers/UserController.php +++ b/controllers/UserController.php @@ -99,6 +99,19 @@ class UserController extends Controller ); } + public function init(): void + { + parent::init(); + + if (Yii::$app->user->can('admin')) { + $this->layout = 'admin_main'; + } elseif (Yii::$app->user->isGuest) { + $this->layout = 'guest_main'; + } else { + $this->layout = 'main'; + } + } + /** * 删除账户(仅自身) * @return Response @@ -239,7 +252,13 @@ class UserController extends Controller Yii::$app->session->setFlash('error', '登陆成功,但出现了内部错误'); } Yii::$app->user->login($user, $model->rememberMe ? 3600 * 24 * 30 : 0); - return $this->goHome(); + // user to home page, admin to admin/index + if (Yii::$app->user->can('admin')) { + return $this->redirect(['admin/index']); + } else { + return $this->goHome(); + } + } } else { Yii::$app->session->setFlash('error', '用户名密码错误或账户已禁用'); @@ -283,7 +302,11 @@ class UserController extends Controller } Yii::$app->user->login($user, $model->rememberMe ? 3600 * 24 * 30 : 0); Yii::$app->session->remove('login_verification'); - return $this->goHome(); + if (Yii::$app->user->can('admin')) { + return $this->redirect(['admin/index']); + } else { + return $this->goHome(); + } } else { Yii::$app->session->setFlash('error', '二步验证代码错误'); } @@ -301,7 +324,11 @@ class UserController extends Controller Yii::$app->session->setFlash('success', '登陆成功,但请注意已经使用的恢复代码已失效'); Yii::$app->user->login($user, $model->rememberMe ? 3600 * 24 * 30 : 0); Yii::$app->session->remove('login_verification'); - return $this->goHome(); + if (Yii::$app->user->can('admin')) { + return $this->redirect(['admin/index']); + } else { + return $this->goHome(); + } } else { Yii::$app->session->setFlash('error', '恢复代码错误'); } @@ -366,6 +393,7 @@ class UserController extends Controller public function actionLogout(): Response { Yii::$app->user->logout(); + Yii::$app->session->setFlash('success', '已登出'); return $this->goHome(); } @@ -392,7 +420,7 @@ class UserController extends Controller $model->password = Yii::$app->security->generatePasswordHash($raw_password); $model->auth_key = Yii::$app->security->generateRandomString(); $model->created_at = date('Y-m-d H:i:s'); - $model->role = 'user'; + $model->role = 'user'; // 管理员只能通过现有管理员操作添加 $model->name = $model->username; //用户默认昵称为用户名,后期可以修改 if ($model->save(false)) { // save without validation $userFolder = Yii::getAlias(Yii::$app->params['dataDirectory']) . '/' . $model->id; @@ -786,7 +814,7 @@ class UserController extends Controller * @return Response * @throws JsonException */ - public function actionVerifyAssertion(int $is_login = 0,int $remember = 0): Response + public function actionVerifyAssertion(int $is_login = 0, int $remember = 0): Response { $data = Yii::$app->request->getRawBody(); @@ -842,7 +870,12 @@ class UserController extends Controller if (!$user->save(false)) { Yii::$app->session->setFlash('error', '登陆成功,但出现了内部错误'); } - Yii::$app->user->login($user, $remember===1 ? 3600 * 24 * 30 : 0); + Yii::$app->user->login($user, $remember === 1 ? 3600 * 24 * 30 : 0); + $publicKeyCredentialSourceRepository1->saveCredential($publicKeyCredentialSource, '', false); + if(Yii::$app->user->can('admin')){ + return $this->asJson(['verified' => true,'redirectTo' => 'index.php?r=admin%2Findex']); + } + return $this->asJson(['verified' => true,'redirectTo' => 'index.php']); } // Optional, but highly recommended, you can save the credential source as it may be modified // during the verification process (counter may be higher).