From 170e124663b40ea625a686eceea3626662d07d8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=81=E7=81=AB=E8=A1=8C=E8=80=85?= Date: Tue, 8 Dec 2020 19:16:19 +0800 Subject: [PATCH 1/9] no message --- src/Models/DzqModel.php | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/Models/DzqModel.php diff --git a/src/Models/DzqModel.php b/src/Models/DzqModel.php new file mode 100644 index 0000000..6ce7bd5 --- /dev/null +++ b/src/Models/DzqModel.php @@ -0,0 +1,33 @@ + Date: Tue, 8 Dec 2020 20:52:47 +0800 Subject: [PATCH 2/9] no message --- src/Http/Middleware/CheckUserStatus.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/Http/Middleware/CheckUserStatus.php b/src/Http/Middleware/CheckUserStatus.php index ba6a7c0..e7b92b1 100644 --- a/src/Http/Middleware/CheckUserStatus.php +++ b/src/Http/Middleware/CheckUserStatus.php @@ -26,6 +26,10 @@ use Psr\Http\Server\RequestHandlerInterface; class CheckUserStatus implements MiddlewareInterface { + private $noCheckAction = [ + '/api/user/signinfields', + '/api/user/signinfields' + ]; /** * {@inheritdoc} * @@ -34,14 +38,17 @@ class CheckUserStatus implements MiddlewareInterface public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { $actor = $request->getAttribute('actor'); - + $actor->status = 2; // 被禁用的用户 if ($actor->status == 1) { throw new PermissionDeniedException('ban_user'); } // 审核中的用户 if ($actor->status == 2) { - throw new PermissionDeniedException('register_validate'); + $path = $request->getUri()->getPath(); + if(!in_array($path,$this->noCheckAction)){ + throw new PermissionDeniedException('register_validate'); + } } // 审核拒绝 if ($actor->status == 3) { -- Gitee From 2465bd4b21dc34844da3b69300811f03dca21f70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=81=E7=81=AB=E8=A1=8C=E8=80=85?= Date: Tue, 8 Dec 2020 20:57:35 +0800 Subject: [PATCH 3/9] no message --- src/Http/Middleware/CheckUserStatus.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Http/Middleware/CheckUserStatus.php b/src/Http/Middleware/CheckUserStatus.php index e7b92b1..668beb7 100644 --- a/src/Http/Middleware/CheckUserStatus.php +++ b/src/Http/Middleware/CheckUserStatus.php @@ -38,7 +38,6 @@ class CheckUserStatus implements MiddlewareInterface public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { $actor = $request->getAttribute('actor'); - $actor->status = 2; // 被禁用的用户 if ($actor->status == 1) { throw new PermissionDeniedException('ban_user'); -- Gitee From 0020e623de366ea0a8d2a6d4c3b9cd93b06ada7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=81=E7=81=AB=E8=A1=8C=E8=80=85?= Date: Tue, 8 Dec 2020 21:01:22 +0800 Subject: [PATCH 4/9] no message --- src/Http/Middleware/CheckUserStatus.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Http/Middleware/CheckUserStatus.php b/src/Http/Middleware/CheckUserStatus.php index 668beb7..229394d 100644 --- a/src/Http/Middleware/CheckUserStatus.php +++ b/src/Http/Middleware/CheckUserStatus.php @@ -27,7 +27,6 @@ use Psr\Http\Server\RequestHandlerInterface; class CheckUserStatus implements MiddlewareInterface { private $noCheckAction = [ - '/api/user/signinfields', '/api/user/signinfields' ]; /** -- Gitee From ac15acec35d9679480e9b08fd30ab9894962152c Mon Sep 17 00:00:00 2001 From: dengjingyuan <602754659@qq.com> Date: Wed, 9 Dec 2020 17:06:31 +0800 Subject: [PATCH 5/9] =?UTF-8?q?execption=20=E6=8A=A5=E9=94=99=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=20trace=20=E5=A0=86=E6=A0=88=E8=B7=9F=E8=B8=AA?= =?UTF-8?q?=EF=BC=8C=E6=96=B9=E4=BE=BF=E6=8E=92=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Api/ErrorHandler.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Api/ErrorHandler.php b/src/Api/ErrorHandler.php index 016d383..bae0ed6 100644 --- a/src/Api/ErrorHandler.php +++ b/src/Api/ErrorHandler.php @@ -40,10 +40,10 @@ class ErrorHandler public function handler(Throwable $e) { if (! $e instanceof Exception) { - $e = new Exception($e->getMessage(), $e->getCode(), $e); + $e = new Exception($e->getMessage().'\n'.$e->getTraceAsString(), $e->getCode(), $e); } - $info = sprintf('%s: %s in %s:%s', get_class($e), $e->getMessage(), $e->getFile(), $e->getLine()); + $info = sprintf('%s: %s in %s:%s', get_class($e), $e->getMessage().'\n'.$e->getTraceAsString(), $e->getFile(), $e->getLine()); $this->logger->info($info); $response = $this->errorHandler->handle($e); -- Gitee From f126f0b0d5d60031c8135e28e7e68c0dff5e7ba4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=81=E7=81=AB=E8=A1=8C=E8=80=85?= Date: Mon, 14 Dec 2020 20:32:11 +0800 Subject: [PATCH 6/9] no message --- src/Http/Middleware/CheckUserStatus.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Http/Middleware/CheckUserStatus.php b/src/Http/Middleware/CheckUserStatus.php index 229394d..92b05ab 100644 --- a/src/Http/Middleware/CheckUserStatus.php +++ b/src/Http/Middleware/CheckUserStatus.php @@ -27,7 +27,8 @@ use Psr\Http\Server\RequestHandlerInterface; class CheckUserStatus implements MiddlewareInterface { private $noCheckAction = [ - '/api/user/signinfields' + '/api/user/signinfields', + '/api/attachments' ]; /** * {@inheritdoc} -- Gitee From 183728e3a9423a8b68629bb2027aad2f3027d22a Mon Sep 17 00:00:00 2001 From: largezhou Date: Tue, 22 Dec 2020 17:23:52 +0800 Subject: [PATCH 7/9] =?UTF-8?q?fix:=20=E9=81=BF=E5=85=8D=E7=94=B1=E4=BA=8E?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E5=BC=95=E8=B5=B7=E7=9A=84=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E9=94=99=E8=AF=AF=EF=BC=8C=E5=AF=BC=E8=87=B4=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E6=97=A0=E6=B3=95=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Http/Server.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Http/Server.php b/src/Http/Server.php index f8eb790..8f8e938 100644 --- a/src/Http/Server.php +++ b/src/Http/Server.php @@ -21,6 +21,7 @@ namespace Discuz\Http; use Discuz\Foundation\Application; use Discuz\Foundation\SiteApp; use Discuz\Http\Middleware\RequestHandler; +use Illuminate\Database\QueryException; use Laminas\Diactoros\Response; use Laminas\Diactoros\ServerRequest; use Laminas\Diactoros\ServerRequestFactory; @@ -37,6 +38,8 @@ class Server extends SiteApp { try { $this->siteBoot(); + } catch (QueryException $e) { + // 忽略,避免由于数据库引起的启动错误,导致页面无法显示 } catch (Throwable $e) { exit($this->formatBootException($e)); } -- Gitee From 8fb8a3f114d4ea8b22721154744c8b7d2b949375 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=81=E7=81=AB=E8=A1=8C=E8=80=85?= Date: Thu, 24 Dec 2020 13:25:04 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E6=89=A9=E5=B1=95=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E6=9D=83=E9=99=90=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PermissionDeniedExceptionHandler.php | 21 ++++--------------- src/Http/Middleware/CheckUserStatus.php | 21 +++++++++++++------ 2 files changed, 19 insertions(+), 23 deletions(-) diff --git a/src/Api/ExceptionHandler/PermissionDeniedExceptionHandler.php b/src/Api/ExceptionHandler/PermissionDeniedExceptionHandler.php index a116870..e40c286 100644 --- a/src/Api/ExceptionHandler/PermissionDeniedExceptionHandler.php +++ b/src/Api/ExceptionHandler/PermissionDeniedExceptionHandler.php @@ -56,26 +56,13 @@ class PermissionDeniedExceptionHandler implements ExceptionHandlerInterface if(isset($siteManage[$reqType])){ $siteOpen = $siteManage[$reqType]['value']; } - if (!$siteOpen) { $error['code'] = 'site_closed'; - $error['detail'][] = $settings->get('site_close_msg')?:''; - } elseif ($e->getMessage() == 'ban_user') { - $error['code'] = 'ban_user'; - } elseif ($e->getMessage() == 'register_validate') { - $error['code'] = 'register_validate'; - } elseif ($e->getMessage() == 'user_deny') { - $error['code'] = 'user_deny'; - } elseif ($e->getMessage() == 'validate_reject') { - $error['code'] = 'validate_reject'; - } elseif ($e->getMessage() == 'validate_ignore') { - $error['code'] = 'validate_ignore'; - } elseif ($e->getMessage() == 'register_close') { - $error['code'] = 'register_close'; - } else { - $error['code'] = 'permission_denied'; + $error['detail'][] = $settings->get('site_close_msg') ?: ''; + }else{ + $error['code'] = $e->getMessage(); } - + return new ResponseBag($status, [$error]); } } diff --git a/src/Http/Middleware/CheckUserStatus.php b/src/Http/Middleware/CheckUserStatus.php index 92b05ab..1663c80 100644 --- a/src/Http/Middleware/CheckUserStatus.php +++ b/src/Http/Middleware/CheckUserStatus.php @@ -18,6 +18,7 @@ namespace Discuz\Http\Middleware; +use App\Models\User; use Discuz\Auth\Exception\PermissionDeniedException; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; @@ -30,6 +31,7 @@ class CheckUserStatus implements MiddlewareInterface '/api/user/signinfields', '/api/attachments' ]; + /** * {@inheritdoc} * @@ -37,27 +39,34 @@ class CheckUserStatus implements MiddlewareInterface */ public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { + $actor = $request->getAttribute('actor'); // 被禁用的用户 - if ($actor->status == 1) { + if ($actor->status == User::STATUS_BAN) { throw new PermissionDeniedException('ban_user'); } // 审核中的用户 - if ($actor->status == 2) { + if ($actor->status == User::STATUS_MOD) { $path = $request->getUri()->getPath(); - if(!in_array($path,$this->noCheckAction)){ + if (!in_array($path, $this->noCheckAction)) { throw new PermissionDeniedException('register_validate'); } } // 审核拒绝 - if ($actor->status == 3) { + if ($actor->status == User::STATUS_REFUSE) { throw new PermissionDeniedException('validate_reject'); } // 审核忽略 - if ($actor->status == 4) { + if ($actor->status == User::STATUS_IGNORE) { throw new PermissionDeniedException('validate_ignore'); } - + // 待填写扩展审核字段的用户 + if ($actor->status == User::STATUS_NEED_FIELDS) { + $path = $request->getUri()->getPath(); + if (!in_array($path, $this->noCheckAction)) { + throw new PermissionDeniedException('need_ext_fields'); + } + } return $handler->handle($request); } } -- Gitee From b4e539a7fbfbada8128f62dd9d67b0aef2a6294e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=81=E7=81=AB=E8=A1=8C=E8=80=85?= Date: Thu, 24 Dec 2020 13:25:35 +0800 Subject: [PATCH 9/9] no message --- src/Models/DzqModel.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Models/DzqModel.php b/src/Models/DzqModel.php index 6ce7bd5..df8df69 100644 --- a/src/Models/DzqModel.php +++ b/src/Models/DzqModel.php @@ -23,10 +23,11 @@ class DzqModel extends Model { private static $instance; protected function __clone(){} + public static function instance() { $class = get_called_class(); if (!isset(self::$instance[$class])) { - self::$instance[$class] = new $class(); + self::$instance[$class] = new static(); } return self::$instance[$class]; } -- Gitee