Skip to content

Commit 19aae9c

Browse files
authored
Merge branch 'v2' into pr@v2@feat_applicaation
2 parents a9f1179 + b16353f commit 19aae9c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+5097
-126
lines changed

apps/common/constants/permission_constants.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ class Group(Enum):
3838
WORKSPACE = "WORKSPACE"
3939
DISPLAY_SETTINGS = "DISPLAY_SETTINGS"
4040
LOGIN_AUTH = "LOGIN_AUTH"
41+
SYSTEM_API_KEY = "SYSTEM_API_KEY"
42+
APPEARANCE_SETTINGS = "APPEARANCE_SETTINGS"
4143

4244

4345
class SystemGroup(Enum):
@@ -213,6 +215,8 @@ def get_workspace_role(self):
213215
Operate.RELATE.value: _("Relate"),
214216
Group.LOGIN_AUTH.value: _("Login Auth"),
215217
Group.DISPLAY_SETTINGS.value: _("Display Settings"),
218+
Group.SYSTEM_API_KEY.value: _("System API Key"),
219+
Group.APPEARANCE_SETTINGS.value:_("Appearance Settings")
216220

217221
}
218222

@@ -534,6 +538,34 @@ class PermissionConstants(Enum):
534538
parent_group=[SystemGroup.APPLICATION],
535539
resource_permission_group_list=[ResourcePermissionGroup.VIEW],
536540
)
541+
SYSTEM_API_KEY_READ = Permission(group=Group.SYSTEM_API_KEY, operate=Operate.READ,
542+
role_list=[RoleConstants.ADMIN],
543+
parent_group=[SystemGroup.SYSTEM_SETTING]
544+
)
545+
SYSTEM_API_KEY_EDIT = Permission(group=Group.SYSTEM_API_KEY, operate=Operate.EDIT,
546+
role_list=[RoleConstants.ADMIN],
547+
parent_group=[SystemGroup.SYSTEM_SETTING]
548+
)
549+
SYSTEM_API_KEY_DELETE = Permission(group=Group.SYSTEM_API_KEY, operate=Operate.DELETE,
550+
role_list=[RoleConstants.ADMIN],
551+
parent_group=[SystemGroup.SYSTEM_SETTING]
552+
)
553+
SYSTEM_API_KEY_CREATE = Permission(group=Group.SYSTEM_API_KEY, operate=Operate.CREATE,
554+
role_list=[RoleConstants.ADMIN],
555+
parent_group=[SystemGroup.SYSTEM_SETTING]
556+
)
557+
APPEARANCE_SETTINGS_READ = Permission(group=Group.APPEARANCE_SETTINGS, operate=Operate.READ,
558+
role_list=[RoleConstants.ADMIN],
559+
parent_group=[SystemGroup.SYSTEM_SETTING]
560+
)
561+
APPEARANCE_SETTINGS_EDIT = Permission(group=Group.APPEARANCE_SETTINGS, operate=Operate.EDIT,
562+
role_list=[RoleConstants.ADMIN],
563+
parent_group=[SystemGroup.SYSTEM_SETTING]
564+
)
565+
566+
567+
568+
537569

538570
def get_workspace_application_permission(self):
539571
return lambda r, kwargs: Permission(group=self.value.group, operate=self.value.operate,

apps/locales/en_US/LC_MESSAGES/django.po

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3672,3 +3672,69 @@ msgstr ""
36723672
#: workspace/views/workspace.py:180
36733673
msgid "Get workspace list by user"
36743674
msgstr ""
3675+
3676+
msgid "System API Key"
3677+
msgstr ""
3678+
3679+
msgid "msgid "Create SystemAPIKey"
3680+
msgstr ""
3681+
3682+
msgid "Get SystemAPIKey List"
3683+
msgstr ""
3684+
3685+
msgid "Update SystemAPIKey"
3686+
msgstr ""
3687+
3688+
msgid "Delete SystemAPIKey"
3689+
msgstr ""
3690+
3691+
msgid "Allow cross domain"
3692+
msgstr ""
3693+
3694+
msgid "Cross domain list"
3695+
msgstr ""
3696+
3697+
msgid "system API key id"
3698+
msgstr ""
3699+
3700+
msgid "View appearance settings"
3701+
msgstr ""
3702+
3703+
msgid "SystemParams"
3704+
msgstr ""
3705+
3706+
msgid "Update appearance settings"
3707+
msgstr ""
3708+
3709+
msgid "theme"
3710+
msgstr ""
3711+
3712+
msgid "login logo"
3713+
msgstr ""
3714+
3715+
msgid "login image"
3716+
msgstr ""
3717+
3718+
msgid "title"
3719+
msgstr ""
3720+
3721+
msgid "slogan"
3722+
msgstr ""
3723+
3724+
msgid "show user manual"
3725+
msgstr ""
3726+
3727+
msgid "user manual url"
3728+
msgstr ""
3729+
3730+
msgid "show forum"
3731+
msgstr ""
3732+
3733+
msgid "forum url"
3734+
msgstr ""
3735+
3736+
msgid "show project"
3737+
msgstr ""
3738+
3739+
msgid "project url"
3740+
msgstr ""

apps/locales/zh_CN/LC_MESSAGES/django.po

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3800,3 +3800,69 @@ msgstr "获取工作空间成员列表"
38003800
#: workspace/views/workspace.py:180
38013801
msgid "Get workspace list by user"
38023802
msgstr "根据用户获取工作空间列表"
3803+
3804+
msgid "System API Key"
3805+
msgstr "系统 API Key"
3806+
3807+
msgid "Create SystemAPIKey"
3808+
msgstr "创建系统 API 密钥"
3809+
3810+
msgid "Update SystemAPIKey"
3811+
msgstr "更新系统 API 密钥"
3812+
3813+
msgid "Get SystemAPIKey List"
3814+
msgstr "获取系统 API 密钥列表"
3815+
3816+
msgid "Delete SystemAPIKey"
3817+
msgstr "删除系统 API 密钥"
3818+
3819+
msgid "Allow cross domain"
3820+
msgstr "允许跨域"
3821+
3822+
msgid "Cross domain list"
3823+
msgstr "跨域列表"
3824+
3825+
msgid "system API key id"
3826+
msgstr "系统 API 密钥 ID"
3827+
3828+
msgid "View appearance settings"
3829+
msgstr "查看外观设置"
3830+
3831+
msgid "SystemParams"
3832+
msgstr "系统参数"
3833+
3834+
msgid "Update appearance settings"
3835+
msgstr "更新外观设置"
3836+
3837+
msgid "theme"
3838+
msgstr "主题"
3839+
3840+
msgid "login logo"
3841+
msgstr "登录 logo"
3842+
3843+
msgid "login image"
3844+
msgstr "登陆图片"
3845+
3846+
msgid "title"
3847+
msgstr "标题"
3848+
3849+
msgid "slogan"
3850+
msgstr "标语"
3851+
3852+
msgid "show user manual"
3853+
msgstr "显示用户手册"
3854+
3855+
msgid "user manual url"
3856+
msgstr "用户手册网址"
3857+
3858+
msgid "show forum"
3859+
msgstr "显示论坛"
3860+
3861+
msgid "forum url"
3862+
msgstr "论坛网址"
3863+
3864+
msgid "show project"
3865+
msgstr "显示项目"
3866+
3867+
msgid "project url"
3868+
msgstr "项目网址"

apps/locales/zh_Hant/LC_MESSAGES/django.po

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3800,3 +3800,69 @@ msgstr "獲取工作空間成員列表"
38003800
#: workspace/views/workspace.py:180
38013801
msgid "Get workspace list by user"
38023802
msgstr "根據用戶獲取工作空間列表"
3803+
3804+
msgid "System API Key"
3805+
msgstr "系統 API Key"
3806+
3807+
msgid "Create SystemAPIKey"
3808+
msgstr "創建系統 API 密鑰"
3809+
3810+
msgid "Get SystemAPIKey List"
3811+
msgstr "獲取系統 API 密鑰清單"
3812+
3813+
msgid "Update SystemAPIKey"
3814+
msgstr "更新系統 API 密鑰"
3815+
3816+
msgid "Delete SystemAPIKey"
3817+
msgstr "刪除系統 API 密鑰"
3818+
3819+
msgid "Allow cross domain"
3820+
msgstr "允許跨域"
3821+
3822+
msgid "Cross domain list"
3823+
msgstr "跨域清單"
3824+
3825+
msgid "system API key id"
3826+
msgstr "系統 API 密鑰 ID"
3827+
3828+
msgid "View appearance settings"
3829+
msgstr "查看外觀設置"
3830+
3831+
msgid "SystemParams"
3832+
msgstr "系統參數"
3833+
3834+
msgid "Update appearance settings"
3835+
msgstr "更新外觀設置"
3836+
3837+
msgid "theme"
3838+
msgstr "主題"
3839+
3840+
msgid "login logo"
3841+
msgstr "登錄 logo"
3842+
3843+
msgid "login image"
3844+
msgstr "登錄圖片"
3845+
3846+
msgid "title"
3847+
msgstr "標題"
3848+
3849+
msgid "slogan"
3850+
msgstr "標語"
3851+
3852+
msgid "show user manual"
3853+
msgstr "顯示用戶手冊"
3854+
3855+
msgid "user manual url"
3856+
msgstr "用戶手冊網址"
3857+
3858+
msgid "show forum"
3859+
msgstr "顯示論壇"
3860+
3861+
msgid "forum url"
3862+
msgstr "論壇網址"
3863+
3864+
msgid "show project"
3865+
msgstr "顯示項目"
3866+
3867+
msgid "project url"
3868+
msgstr "項目網址"

apps/users/serializers/user.py

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
@desc:
88
"""
99
import re
10+
from collections import defaultdict
1011
from itertools import product
1112

1213
from django.db import transaction
@@ -163,9 +164,38 @@ def list(self, with_valid=True):
163164
def page(self, current_page: int, page_size: int, with_valid=True):
164165
if with_valid:
165166
self.is_valid(raise_exception=True)
166-
return page_search(current_page, page_size,
167-
self.get_query_set(),
168-
post_records_handler=lambda u: UserInstanceSerializer(u).data)
167+
result = page_search(current_page, page_size,
168+
self.get_query_set(),
169+
post_records_handler=lambda u: UserInstanceSerializer(u).data)
170+
role_model = DatabaseModelManage.get_model("role_model")
171+
user_role_relation_model = DatabaseModelManage.get_model("workspace_user_role_mapping")
172+
173+
def _get_user_roles(user_ids):
174+
if not (role_model and user_role_relation_model):
175+
return {}
176+
177+
# 获取所有相关角色关系,并预加载角色信息
178+
user_role_relations = (
179+
user_role_relation_model.objects
180+
.filter(user_id__in=user_ids)
181+
.select_related('role_id') # 预加载外键数据
182+
)
183+
184+
# 构建用户ID到角色名称列表的映射
185+
user_role_mapping = defaultdict(list)
186+
for relation in user_role_relations:
187+
user_role_mapping[relation.user_id].append(relation.role_id.name)
188+
189+
return user_role_mapping
190+
191+
if role_model and user_role_relation_model:
192+
user_ids = [user['id'] for user in result['records']]
193+
user_role_mapping = _get_user_roles(user_ids)
194+
195+
# 将角色信息添加回用户数据中
196+
for user in result['records']:
197+
user['role'] = user_role_mapping.get(user['id'], [])
198+
return result
169199

170200
@valid_license(model=User, count=2,
171201
message=_(

ui/src/api/image.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { Result } from '@/request/Result'
2+
import { get, post, del, put } from '@/request/index'
3+
4+
const prefix = '/image'
5+
/**
6+
* 上传图片
7+
* @param 参数 file:file
8+
*/
9+
const postImage: (data: any) => Promise<Result<any>> = (data) => {
10+
return post(`${prefix}`, data)
11+
}
12+
13+
export default {
14+
postImage
15+
}

0 commit comments

Comments
 (0)