Skip to content

Commit 3600985

Browse files
committed
feat: add batch user role setting functionality and update related UI components
1 parent 132d6d7 commit 3600985

File tree

11 files changed

+362
-54
lines changed

11 files changed

+362
-54
lines changed

apps/locales/en_US/LC_MESSAGES/django.po

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8894,5 +8894,11 @@ msgstr ""
88948894
msgid "Resources mapping"
88958895
msgstr ""
88968896

8897+
msgid "Batch set user roles"
8898+
msgstr ""
8899+
8900+
msgid "Role Setting cannot be empty"
8901+
msgstr ""
8902+
88978903
msgid "View related resources"
88988904
msgstr ""

apps/locales/zh_CN/LC_MESSAGES/django.po

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8361,7 +8361,7 @@ msgstr "更新平台状态"
83618361
#: apps/xpack/views/resource_chat_user.py:28
83628362
#: apps/xpack/views/resource_chat_user.py:29
83638363
msgid "Get Resource chat user List"
8364-
msgstr "获取资源聊天用户列表"
8364+
msgstr "获取资源对话用户列表"
83658365

83668366
#: apps/xpack/views/resource_chat_user.py:32
83678367
#: apps/xpack/views/resource_chat_user.py:54
@@ -8370,19 +8370,19 @@ msgstr "获取资源聊天用户列表"
83708370
#: apps/xpack/views/system_chat_user_group.py:45
83718371
#: apps/xpack/views/system_chat_user_group.py:67
83728372
msgid "Chat user"
8373-
msgstr "聊天用户"
8373+
msgstr "对话用户"
83748374

83758375
#: apps/xpack/views/resource_chat_user.py:48
83768376
#: apps/xpack/views/resource_chat_user.py:49
83778377
#: apps/xpack/views/resource_chat_user.py:50
83788378
msgid "Edit Resource chat user List"
8379-
msgstr "编辑资源聊天用户列表"
8379+
msgstr "编辑资源对话用户列表"
83808380

83818381
#: apps/xpack/views/resource_chat_user.py:72
83828382
#: apps/xpack/views/resource_chat_user.py:73
83838383
#: apps/xpack/views/resource_chat_user.py:74
83848384
msgid "Get Resource chat user page List"
8385-
msgstr "获取资源聊天用户分页列表"
8385+
msgstr "获取资源对话用户分页列表"
83868386

83878387
#: apps/xpack/views/system_api_key.py:19 apps/xpack/views/system_api_key.py:20
83888388
#: apps/xpack/views/system_api_key.py:21
@@ -8446,22 +8446,22 @@ msgstr "系统/用户组"
84468446
#: apps/xpack/views/system_chat_user_group.py:20
84478447
#: apps/xpack/views/system_chat_user_group.py:21
84488448
msgid "Get Resource chat user group List"
8449-
msgstr "获取资源聊天用户组列表"
8449+
msgstr "获取资源对话用户组列表"
84508450

84518451
#: apps/xpack/views/system_chat_user_group.py:39
84528452
#: apps/xpack/views/system_chat_user_group.py:40
84538453
#: apps/xpack/views/system_chat_user_group.py:41
84548454
msgid "Edit Resource chat user group List"
8455-
msgstr "编辑资源聊天用户组列表"
8455+
msgstr "编辑资源对话用户组列表"
84568456

84578457
#: apps/xpack/views/system_chat_user_group.py:62
84588458
#: apps/xpack/views/system_chat_user_group.py:64
84598459
msgid "Get Resource chat user group page List"
8460-
msgstr "获取资源聊天用户组分页列表"
8460+
msgstr "获取资源对话用户组分页列表"
84618461

84628462
#: apps/xpack/views/system_chat_user_group.py:63
84638463
msgid "Get Resource chat user page group List"
8464-
msgstr "获取资源聊天用户分页组列表"
8464+
msgstr "获取资源对话用户分页组列表"
84658465

84668466
#: apps/xpack/views/system_params.py:22 apps/xpack/views/system_params.py:23
84678467
#: apps/xpack/views/system_params.py:24
@@ -8546,7 +8546,7 @@ msgid "Paragraph"
85468546
msgstr "段落"
85478547

85488548
msgid "User group"
8549-
msgstr "用戶组"
8549+
msgstr "用户组"
85508550

85518551
msgid "Remove member from user group"
85528552
msgstr "从用户组中移除成员"
@@ -9020,5 +9020,11 @@ msgstr "获取资源的关系分页列表"
90209020
msgid "Resources mapping"
90219021
msgstr "资源映射"
90229022

9023+
msgid "Batch set user roles"
9024+
msgstr "批量设置用户角色"
9025+
9026+
msgid "Role Setting cannot be empty"
9027+
msgstr "角色设置不能为空"
9028+
90239029
msgid "View related resources"
90249030
msgstr "查看关联资源"

apps/locales/zh_Hant/LC_MESSAGES/django.po

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9020,5 +9020,11 @@ msgstr "獲取資源的關係分頁清單"
90209020
msgid "Resources mapping"
90219021
msgstr "資源映射"
90229022

9023+
msgid "Batch set user roles"
9024+
msgstr "批量設置用戶角色"
9025+
9026+
msgid "Role Setting cannot be empty"
9027+
msgstr "角色設置不能為空"
9028+
90239029
msgid "View related resources"
90249030
msgstr "查看關聯資源"

apps/users/views/user.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ def get_user_operation_object(user_id):
4242
return {}
4343

4444

45+
4546
def get_re_password_details(request):
4647
path = request.path
4748
body = request.data
@@ -245,7 +246,7 @@ class BatchDelete(APIView):
245246
responses=DefaultModelResponse.get_response())
246247
@has_permissions(PermissionConstants.USER_DELETE, RoleConstants.ADMIN)
247248
@log(menu='User management', operate='Batch delete user',
248-
get_operation_object=lambda r, k: get_user_operation_object(k.get('user_id')))
249+
get_operation_object=lambda r, k: get_user_operation_object(r.data.get('ids', [])))
249250
def post(self, request: Request):
250251
return result.success(UserManageSerializer.BatchDelete({'ids': request.data}).batch_delete(with_valid=True))
251252

ui/src/api/system/user-manage.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,19 @@ const batchDelete: (
9696
return post(`/user_manage/batch_delete`, ids, {}, loading)
9797
}
9898

99+
const batchSetRolePE: (data: any, loading?: Ref<boolean>) => Promise<Result<any>> = (
100+
data,
101+
loading,
102+
) => {
103+
return post(`/user_manage/batch/add_role`, data, undefined, loading)
104+
}
105+
const batchSetRoleEE: (data: any, loading?: Ref<boolean>) => Promise<Result<any>> = (
106+
data,
107+
loading,
108+
) => {
109+
return post(`/user_manage/batch/add_role_ee`, data, undefined, loading)
110+
}
111+
99112
export default {
100113
getUserManage,
101114
putUserManage,
@@ -104,5 +117,7 @@ export default {
104117
putUserManagePassword,
105118
getSystemDefaultPassword,
106119
getValid,
107-
batchDelete
120+
batchDelete,
121+
batchSetRolePE,
122+
batchSetRoleEE
108123
}

ui/src/locales/lang/en-US/views/user-manage.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,5 @@ export default {
4242
lark: 'Lark',
4343
dingtalk: 'DingTalk',
4444
},
45+
settingRole: 'Set Role',
4546
}

ui/src/locales/lang/zh-CN/views/user-manage.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,5 @@ export default {
4040
lark: '飞书',
4141
dingtalk: '钉钉',
4242
},
43+
settingRole: '设置角色',
4344
}

ui/src/locales/lang/zh-Hant/views/user-manage.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,5 @@ export default {
4141
lark: '飛書',
4242
dingtalk: '釘釘',
4343
},
44+
settingRole: '設定角色',
4445
}

ui/src/views/system/role/component/MemberFormContent.vue

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -57,23 +57,27 @@
5757
</div>
5858
</el-scrollbar>
5959
<!-- 添加按钮 -->
60-
<el-button type="primary" text class="mt-2" @click="handleAdd">
60+
<el-button type="primary" text class="mt-2" @click="handleAdd" v-if="needAddButton">
6161
<AppIcon iconName="app-add-outlined" class="mr-4"></AppIcon>
6262
{{ props.addText ?? $t('views.role.member.add') }}
6363
</el-button>
6464
</el-form>
6565
</template>
6666

6767
<script setup lang="ts">
68-
import { ref, watch, computed } from 'vue'
69-
import type { FormItemModel } from '@/api/type/role'
68+
import {ref, watch, computed} from 'vue'
69+
import type {FormItemModel} from '@/api/type/role'
7070
71-
const props = defineProps<{
71+
const props = withDefaults(defineProps<{
7272
models: FormItemModel[]
7373
addText?: string
74-
keepOneLine?: boolean // 至少保留一行
74+
keepOneLine?: boolean
7575
deleteButtonDisabled?: (model: any) => boolean
76-
}>()
76+
needAddButton?: boolean
77+
}>(), {
78+
needAddButton: true
79+
})
80+
7781
7882
const formRef = ref()
7983
const formItem: Record<string, any> = {}
@@ -86,7 +90,7 @@ const selectedRoles = computed(() => {
8690
})
8791
8892
function handleAdd() {
89-
form.value.push({ ...formItem })
93+
form.value.push({...formItem})
9094
}
9195
9296
watch(
@@ -96,7 +100,7 @@ watch(
96100
formItem[e.path] = []
97101
})
98102
},
99-
{ immediate: true },
103+
{immediate: true},
100104
)
101105
102106
function handleDelete(index: number) {
@@ -115,5 +119,5 @@ const resetValidation = () => {
115119
formRef.value.clearValidate()
116120
}
117121
}
118-
defineExpose({ validate, resetValidation })
122+
defineExpose({validate, resetValidation})
119123
</script>

0 commit comments

Comments
 (0)