From 7e67fa30768567d19949788a1a92ade34386fa4f Mon Sep 17 00:00:00 2001 From: kuaifan Date: Fri, 10 Dec 2021 06:34:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BC=9A=E5=91=98=E9=99=90?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Exceptions/Handler.php | 15 +++++++++++++++ app/Http/Controllers/Api/UsersController.php | 12 +++--------- app/Models/User.php | 18 ++++++++++++++++++ resources/assets/js/pages/login.vue | 2 ++ .../js/pages/manage/components/DialogView.vue | 2 ++ resources/assets/js/pages/manage/dashboard.vue | 2 ++ 6 files changed, 42 insertions(+), 9 deletions(-) diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php index 7c52374b..355c4415 100644 --- a/app/Exceptions/Handler.php +++ b/app/Exceptions/Handler.php @@ -5,6 +5,7 @@ namespace App\Exceptions; use App\Module\Base; use Illuminate\Database\Eloquent\ModelNotFoundException; use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler; +use Illuminate\Support\Facades\Log; use Throwable; class Handler extends ExceptionHandler @@ -57,4 +58,18 @@ class Handler extends ExceptionHandler } return parent::render($request, $e); } + + /** + * 重写report优雅记录laravel日志 + * @param Throwable $e + * @throws Throwable + */ + public function report(Throwable $e) + { + if ($e instanceof ApiException) { + Log::error($e->getMessage(), ['exception' => ' at ' . $e->getFile() .':' . $e->getLine()]); + } else { + parent::report($e); + } + } } diff --git a/app/Http/Controllers/Api/UsersController.php b/app/Http/Controllers/Api/UsersController.php index 935ec4fd..399ab49b 100755 --- a/app/Http/Controllers/Api/UsersController.php +++ b/app/Http/Controllers/Api/UsersController.php @@ -210,6 +210,7 @@ class UsersController extends AbstractController { $user = User::auth(); $data = Request::all(); + $user->checkSystem(1); //头像 if (Arr::exists($data, 'userimg')) { $userimg = Request::input('userimg'); @@ -267,6 +268,7 @@ class UsersController extends AbstractController public function editpass() { $user = User::auth(); + $user->checkSystem(); // $oldpass = trim(Request::input('oldpass')); $newpass = trim(Request::input('newpass')); @@ -279,15 +281,6 @@ class UsersController extends AbstractController return Base::retError('新旧密码一致'); } // - if (env("PASSWORD_ADMIN") == 'disabled') { - if ($user->userid == 1) { - return Base::retError('当前环境禁止修改密码'); - } - } - if (env("PASSWORD_OWNER") == 'disabled') { - return Base::retError('当前环境禁止修改密码'); - } - // $verify = User::whereUserid($user->userid)->wherePassword(Base::md52($oldpass, User::token2encrypt()))->count(); if (empty($verify)) { return Base::retError('请填写正确的旧密码'); @@ -462,6 +455,7 @@ class UsersController extends AbstractController if (empty($userInfo)) { return Base::retError('会员不存在或已被删除'); } + $userInfo->checkSystem(1); // $upArray = []; switch ($type) { diff --git a/app/Models/User.php b/app/Models/User.php index 607a6526..d37ea3c2 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -145,6 +145,24 @@ class User extends AbstractModel } } + /** + * 检查环境是否允许 + * @param null $onlyUserid 仅指定会员 + */ + public function checkSystem($onlyUserid = null) + { + if ($onlyUserid && $onlyUserid != $this->userid) { + return; + } + if (env("PASSWORD_ADMIN") == 'disabled') { + if ($this->userid == 1) { + throw new ApiException('当前环境禁止此操作'); + } + } + if (env("PASSWORD_OWNER") == 'disabled') { + throw new ApiException('当前环境禁止此操作'); + } + } /** ***************************************************************************************** */ /** ***************************************************************************************** */ diff --git a/resources/assets/js/pages/login.vue b/resources/assets/js/pages/login.vue index 3716e017..1a9b1712 100644 --- a/resources/assets/js/pages/login.vue +++ b/resources/assets/js/pages/login.vue @@ -78,6 +78,8 @@ export default { url: 'system/get/appinfo', }).then(({data}) => { this.downList = data.list; + }).catch(() => { + this.downList = []; }); }, diff --git a/resources/assets/js/pages/manage/components/DialogView.vue b/resources/assets/js/pages/manage/components/DialogView.vue index 069a85c0..6bfb7d64 100644 --- a/resources/assets/js/pages/manage/components/DialogView.vue +++ b/resources/assets/js/pages/manage/components/DialogView.vue @@ -124,6 +124,8 @@ export default { }, }).then(({data}) => { this.read_list = data; + }).catch(() => { + this.read_list = []; }); }, diff --git a/resources/assets/js/pages/manage/dashboard.vue b/resources/assets/js/pages/manage/dashboard.vue index a787abb0..ef08ecad 100644 --- a/resources/assets/js/pages/manage/dashboard.vue +++ b/resources/assets/js/pages/manage/dashboard.vue @@ -219,6 +219,8 @@ export default { url: 'system/get/appinfo', }).then(({data}) => { this.downList = data.list; + }).catch(() => { + this.downList = []; }); },