"refactor(api): 角色/职务剩余裸操作接入 gvsdsdk 服务层
- Role 级联搜索/当前角色/用户中心/用户详情角色列表改用 GetRolesForUser/GetUserRoleDetails/GetRoleByUUID - PositionManager 11 个方法接入 position.py 全部视图 - 累计 20+ 处裸 ORM 操作统一走 gvsdsdk 服务层"
This commit is contained in:
1 parent
e27f3d3dd6
commit
10b8af2f2b
4 files changed
+11
-20
No files matched your search
@@ -69,13 +69,10 @@ class UserCenterCardView(ELTAuthenticatedAPIView):
|
||||
|
||||
def get(self, request):
|
||||
user = request.user
|
||||
from gvsds.apps.gerp.models import UserRole, Role
|
||||
from gvsdsdk.auth.managers import RoleManager
|
||||
try:
|
||||
# request.user 是 gvsdsdk.User,无 userrole_set 反向关系
|
||||
user_role = UserRole.objects.filter(
|
||||
UserUUID=user.UserUUID
|
||||
).first()
|
||||
role = Role.objects.filter(RoleUUID=user_role.RoleUUID).first() if user_role else None
|
||||
# request.user 是 gvsdsdk.User,无 userrole_set 反向关系,经 RoleManager 获取角色
|
||||
role = RoleManager.GetRolesForUser(user.UserUUID).first()
|
||||
except Exception:
|
||||
role = None
|
||||
return Response({
|
||||
|
||||
@@ -71,10 +71,11 @@ class UserDetailView(ELTAuthenticatedAPIView):
|
||||
}
|
||||
|
||||
# 角色列表(通过 UserRole.CompanyUUID 获取关联公司)
|
||||
from gvsdsdk.auth.managers import RoleManager
|
||||
roles = []
|
||||
user_roles = UserRole.objects.filter(UserUUID=user_uuid)
|
||||
user_roles = RoleManager.GetUserRoleDetails(user_uuid)
|
||||
for ur in user_roles:
|
||||
role = Role.objects.filter(RoleUUID=ur.RoleUUID).first()
|
||||
role = RoleManager.GetRoleByUUID(ur.RoleUUID)
|
||||
if role:
|
||||
company_name = ''
|
||||
company_short = ''
|
||||
|
||||
@@ -212,15 +212,9 @@ class RoleViewSet(TenantScopedMixin, viewsets.ModelViewSet):
|
||||
# 无公司上下文:无法判断"同公司",返回空
|
||||
qs = qs.none()
|
||||
else:
|
||||
ur_qs = UserRole.objects.filter(
|
||||
UserUUID=user_uuid_bytes,
|
||||
CompanyUUID=company_uuid,
|
||||
)
|
||||
bound_role_ids = set(ur_qs.values_list('RoleUUID', flat=True))
|
||||
if bound_role_ids:
|
||||
qs = qs.filter(RoleUUID__in=bound_role_ids)
|
||||
else:
|
||||
qs = qs.none()
|
||||
from gvsdsdk.auth.managers import RoleManager
|
||||
bound_roles = RoleManager.GetRolesForUser(user_uuid_bytes, company_uuid)
|
||||
qs = qs.filter(RoleUUID__in=bound_roles.values_list('RoleUUID', flat=True))
|
||||
offset = int(request.query_params.get('offset', 0))
|
||||
serializer = self.get_serializer(qs[offset:offset + 20], many=True)
|
||||
data = serializer.data
|
||||
|
||||
@@ -89,9 +89,8 @@ def _ClearJwtCookies(response):
|
||||
|
||||
def _SetCurrentRoleCookie(response, user):
|
||||
"""查询用户首个角色并设置 CurrentRoleUUID cookie"""
|
||||
from gvsds.apps.gerp.models import UserRole as _UserRole
|
||||
# UserRole.RoleUUID 是 UUIDField,不能 select_related
|
||||
first_role = _UserRole.objects.filter(UserUUID=user.UserUUID).first()
|
||||
from gvsdsdk.auth.managers import RoleManager
|
||||
first_role = RoleManager.GetRolesForUser(user.UserUUID).first()
|
||||
if first_role and first_role.RoleUUID:
|
||||
max_age = int(settings.SIMPLE_JWT['REFRESH_TOKEN_LIFETIME'].total_seconds())
|
||||
response.set_cookie(
|
||||
|
||||
Reference in new issue
Block a user