From 231332585d72d44d2fd417c7467a4aebc13a3bdc Mon Sep 17 00:00:00 2001 From: xinwen Date: Tue, 3 Nov 2020 17:31:25 +0800 Subject: [PATCH] =?UTF-8?q?fix(perms):=20=E9=87=8D=E5=BB=BA=E6=8E=88?= =?UTF-8?q?=E6=9D=83=E6=A0=91=E5=86=B2=E7=AA=81=E6=97=B6=EF=BC=8C=E5=93=8D?= =?UTF-8?q?=E5=BA=94=E9=87=8C=E5=8A=A0=20code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/common/drf/exc_handlers.py | 6 +++--- apps/perms/utils/asset/user_permission.py | 5 ++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/apps/common/drf/exc_handlers.py b/apps/common/drf/exc_handlers.py index f0a016cf4..ae0688145 100644 --- a/apps/common/drf/exc_handlers.py +++ b/apps/common/drf/exc_handlers.py @@ -39,10 +39,10 @@ def common_exception_handler(exc, context): if getattr(exc, 'wait', None): headers['Retry-After'] = '%d' % exc.wait - if isinstance(exc.detail, (list, dict)): - data = exc.detail + if isinstance(exc.detail, str) and isinstance(exc.get_codes(), str): + data = {'detail': exc.detail, 'code': exc.get_codes()} else: - data = {'detail': exc.detail} + data = exc.detail set_rollback() return Response(data, status=exc.status_code, headers=headers) diff --git a/apps/perms/utils/asset/user_permission.py b/apps/perms/utils/asset/user_permission.py index 246601e2e..8ca7789f1 100644 --- a/apps/perms/utils/asset/user_permission.py +++ b/apps/perms/utils/asset/user_permission.py @@ -507,4 +507,7 @@ def rebuild_user_tree_if_need(request, user): rebuild_user_mapping_nodes_with_lock(user) except lock.SomeoneIsDoingThis: # 您的数据正在初始化,请稍等 - raise lock.SomeoneIsDoingThis(detail=_('Please wait while your data is being initialized')) + raise lock.SomeoneIsDoingThis( + detail=_('Please wait while your data is being initialized'), + code='rebuild_tree_conflict' + )