diff --git a/merchant_ops/services/authz.py b/merchant_ops/services/authz.py index f3b5dfe..69273f0 100644 --- a/merchant_ops/services/authz.py +++ b/merchant_ops/services/authz.py @@ -53,6 +53,15 @@ def assert_staff_perm(member, perm_code): raise StaffAuthError(403, f'无权限: {perm_code}') +def staff_fields_for_login(user): + """登录/注册响应附带子客服身份(与 shangjiastatus 并列,互斥)。""" + ctx = resolve_staff_context(user) + return { + 'staffstatus': 1 if ctx else 0, + 'staff_context': ctx, + } + + def resolve_staff_context(user): """子客服上下文;非客服返回 None。""" member = get_active_staff_member(user) diff --git a/users/views.py b/users/views.py index aae931e..f3934c9 100644 --- a/users/views.py +++ b/users/views.py @@ -284,6 +284,9 @@ class WechatMiniProgramLoginView(APIView): # 获取群配置 group_info = self.huoquQunPeizhi() + from merchant_ops.services.authz import staff_fields_for_login + staff_fields = staff_fields_for_login(user_main) + # 返回数据 response_data = { 'token': token, @@ -299,7 +302,8 @@ class WechatMiniProgramLoginView(APIView): 'dashouqun': group_info.get('dashouqun', ''), 'dashouqunid': group_info.get('dashouqunid', ''), 'guanshiqun': group_info.get('guanshiqun', ''), - 'guanshiqunid': group_info.get('guanshiqunid', '') + 'guanshiqunid': group_info.get('guanshiqunid', ''), + **staff_fields, } return Response({'code': 0, 'msg': '登录成功', 'data': response_data})