fix(perms): 重建授权树冲突时,响应里加 code

This commit is contained in:
xinwen 2020-11-03 17:31:25 +08:00 committed by Jiangjie.Bai
parent 531de188d6
commit 231332585d
2 changed files with 7 additions and 4 deletions

View File

@ -39,10 +39,10 @@ def common_exception_handler(exc, context):
if getattr(exc, 'wait', None): if getattr(exc, 'wait', None):
headers['Retry-After'] = '%d' % exc.wait headers['Retry-After'] = '%d' % exc.wait
if isinstance(exc.detail, (list, dict)): if isinstance(exc.detail, str) and isinstance(exc.get_codes(), str):
data = exc.detail data = {'detail': exc.detail, 'code': exc.get_codes()}
else: else:
data = {'detail': exc.detail} data = exc.detail
set_rollback() set_rollback()
return Response(data, status=exc.status_code, headers=headers) return Response(data, status=exc.status_code, headers=headers)

View File

@ -507,4 +507,7 @@ def rebuild_user_tree_if_need(request, user):
rebuild_user_mapping_nodes_with_lock(user) rebuild_user_mapping_nodes_with_lock(user)
except lock.SomeoneIsDoingThis: 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'
)