fix: 俱乐部角色ORM过滤+商家订单权限002ab/003aa+legacy兜底+perm-debug

This commit is contained in:
XingQue
2026-07-06 19:25:15 +08:00
parent 7bb891187b
commit 2edca09859
6 changed files with 126 additions and 40 deletions

View File

@@ -229,6 +229,45 @@ class ClubKefuMenuAccessView(APIView):
return Response({'code': 0, 'msg': 'ok', 'data': payload})
class ClubPermDebugView(APIView):
"""GET /jituan/auth/perm-debug — 当前俱乐部权限解析明细。"""
permission_classes = [IsAuthenticated]
def get(self, request):
from backend.utils import verify_kefu_permission
from jituan.services.admin_context import get_allowed_club_ids, resolve_admin_effective_club
from jituan.services.club_context import resolve_club_id_from_request, resolve_club_scope
from jituan.services.club_rbac import describe_roles_in_scope
user = request.user
if not is_kefu_backend_account(user):
return Response({'code': 403, 'msg': '非后台账号'}, status=403)
requested_club = resolve_club_id_from_request(request)
requested_scope = resolve_club_scope(request)
eff_club, eff_scope, _ = resolve_admin_effective_club(user, request)
allowed = list(get_allowed_club_ids(user))
_, permissions = verify_kefu_permission(request, None)
codes = list(permissions) if isinstance(permissions, list) else ['*']
return Response({
'code': 0,
'msg': 'ok',
'data': {
'yonghuid': user.UserUID,
'phone': user.Phone,
'requested_club_id': requested_club,
'requested_scope': requested_scope,
'effective_club_id': eff_club,
'effective_scope': eff_scope,
'allowed_club_ids': allowed,
'permission_codes': codes,
'roles_in_scope': describe_roles_in_scope(user, eff_club, eff_scope, allowed),
},
})
class ClubAdminAssignmentListView(APIView):
"""POST /jituan/houtai/admin-assignments — 数据范围任职(非 gvsdsdk 功能权限)。"""