From f40e625ee13af2e95ce12ef48515608067daf2db Mon Sep 17 00:00:00 2001 From: shaohuzhang1 <80892890+shaohuzhang1@users.noreply.github.com> Date: Thu, 19 Jun 2025 21:43:57 +0800 Subject: [PATCH] fix: workspace (#3320) --- apps/users/serializers/user.py | 11 +++++++- ui/src/api/type/user.ts | 1 + .../workspace-dropdown/index.vue | 27 +++++-------------- ui/src/stores/modules/user.ts | 11 ++++++++ 4 files changed, 29 insertions(+), 21 deletions(-) diff --git a/apps/users/serializers/user.py b/apps/users/serializers/user.py index 5490a1fda..79d8c0139 100644 --- a/apps/users/serializers/user.py +++ b/apps/users/serializers/user.py @@ -11,7 +11,6 @@ import os import random import re from collections import defaultdict -from itertools import product from django.core.cache import cache from django.core.mail.backends.smtp import EmailBackend @@ -71,6 +70,14 @@ def is_workspace_manage(user_id: str, workspace_id: str): return QuerySet(User).filter(id=user_id, role=RoleConstants.ADMIN.value.__str__()).exists() +def get_workspace_list_by_user(user_id): + get_workspace_list = DatabaseModelManage.get_model('get_workspace_list_by_user') + license_is_valid = DatabaseModelManage.get_model('license_is_valid') or (lambda: False) + if get_workspace_list is not None and license_is_valid(): + return get_workspace_list(user_id) + return [{'id': 'default', 'name': 'default'}] + + class UserProfileSerializer(serializers.Serializer): @staticmethod def profile(user: User, auth: Auth): @@ -80,6 +87,7 @@ class UserProfileSerializer(serializers.Serializer): @param auth: 认证对象 @return: """ + workspace_list = get_workspace_list_by_user(user.id) return { 'id': user.id, 'username': user.username, @@ -89,6 +97,7 @@ class UserProfileSerializer(serializers.Serializer): 'permissions': auth.permission_list, 'is_edit_password': user.role == RoleConstants.ADMIN.name and user.password == 'd880e722c47a34d8e9fce789fc62389d', 'language': user.language, + 'workspace_list': workspace_list } diff --git a/ui/src/api/type/user.ts b/ui/src/api/type/user.ts index 0d608c826..cad3e9471 100644 --- a/ui/src/api/type/user.ts +++ b/ui/src/api/type/user.ts @@ -27,6 +27,7 @@ interface User { IS_XPACK?: boolean XPACK_LICENSE_IS_VALID?: boolean language?: string + workspace_list?: Array } interface LoginRequest { diff --git a/ui/src/layout/layout-header/workspace-dropdown/index.vue b/ui/src/layout/layout-header/workspace-dropdown/index.vue index c928615f2..f0bc9de2e 100644 --- a/ui/src/layout/layout-header/workspace-dropdown/index.vue +++ b/ui/src/layout/layout-header/workspace-dropdown/index.vue @@ -12,7 +12,7 @@