Skip to content

Commit efa2335

Browse files
committed
refactor: role setting
1 parent 62cb370 commit efa2335

File tree

5 files changed

+48
-31
lines changed

5 files changed

+48
-31
lines changed

ui/src/router/modules/system.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ const systemRouter = {
3838
new ComplexPermission(
3939
[RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE.getWorkspaceRole],
4040
[PermissionConst.ROLE_READ, PermissionConst.WORKSPACE_ROLE_READ],
41-
[EditionConst.IS_EE],
41+
[EditionConst.IS_EE, EditionConst.IS_PE],
4242
'OR',
4343
),
4444
],

ui/src/utils/dynamics-api/permission-api.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import { PermissionConst, EditionConst, RoleConst } from '@/utils/permission/data'
2-
import { hasPermission } from '@/utils/permission/index'
1+
import {PermissionConst, EditionConst, RoleConst} from '@/utils/permission/data'
2+
import {hasPermission} from '@/utils/permission/index'
33
import roleSystemApi from '@/api/system/role'
44
import roleWorkspaceApi from '@/api/workspace/role'
5-
import { ComplexPermission } from '../permission/type'
5+
import {ComplexPermission} from '../permission/type'
66

77
// 系统管理员 API
88
const systemApiMap = {
@@ -19,19 +19,20 @@ const workspaceApiMap = {
1919
*/
2020

2121
export function loadPermissionApi(type: string) {
22-
if (hasPermission(EditionConst.IS_EE, 'OR')) {
23-
if (hasPermission(new ComplexPermission (
22+
if (hasPermission([EditionConst.IS_EE, EditionConst.IS_PE], 'OR')) {
23+
if (hasPermission(new ComplexPermission(
2424
[RoleConst.ADMIN],
2525
[PermissionConst.ROLE_READ],
2626
[],
27-
'OR'),'OR')) {
27+
'OR'), 'OR')) {
2828
// 加载系统管理员 API
2929
return systemApiMap[type]
30-
} if (hasPermission(new ComplexPermission (
30+
}
31+
if (hasPermission(new ComplexPermission(
3132
[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole],
3233
[PermissionConst.WORKSPACE_ROLE_READ.getWorkspacePermissionWorkspaceManageRole],
3334
[],
34-
'OR'),'OR' )) {
35+
'OR'), 'OR')) {
3536
// 加载企业版工作空间管理员 API
3637
return workspaceApiMap[type]
3738
}

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

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,19 @@
2121
</template>
2222

2323
<script setup lang="ts">
24-
import { onBeforeMount, ref } from 'vue'
25-
import type { CreateMemberParamsItem, FormItemModel } from '@/api/type/role'
24+
import {onBeforeMount, ref} from 'vue'
25+
import type {CreateMemberParamsItem, FormItemModel} from '@/api/type/role'
2626
import UserApi from '@/api/user/user'
2727
import WorkspaceApi from '@/api/workspace/workspace'
2828
import MemberFormContent from './MemberFormContent.vue'
29-
import { t } from '@/locales'
30-
import type { RoleItem } from '@/api/type/role'
31-
import { MsgSuccess } from '@/utils/message'
32-
import { RoleTypeEnum } from '@/enums/system'
33-
import { loadPermissionApi } from '@/utils/dynamics-api/permission-api'
29+
import {t} from '@/locales'
30+
import type {RoleItem} from '@/api/type/role'
31+
import {MsgSuccess} from '@/utils/message'
32+
import {RoleTypeEnum} from '@/enums/system'
33+
import {loadPermissionApi} from '@/utils/dynamics-api/permission-api'
34+
import useStore from "@/stores";
3435
36+
const {user} = useStore()
3537
const props = defineProps<{
3638
currentRole?: RoleItem
3739
}>()
@@ -108,16 +110,18 @@ async function getWorkspaceFormItem() {
108110
function init() {
109111
if (props.currentRole?.type !== RoleTypeEnum.ADMIN) {
110112
formItemModel.value = [...userFormItem.value, ...workspaceFormItem.value]
111-
list.value = [{ user_ids: [], workspace_ids: [] }]
113+
list.value = [{user_ids: [], workspace_ids: []}]
112114
} else {
113115
formItemModel.value = [...userFormItem.value]
114-
list.value = [{ user_ids: [] }]
116+
list.value = [{user_ids: []}]
115117
}
116118
}
117119
118120
onBeforeMount(async () => {
119121
await getUserFormItem()
120-
await getWorkspaceFormItem()
122+
if (user.isEE()) {
123+
await getWorkspaceFormItem()
124+
}
121125
init()
122126
})
123127
@@ -131,16 +135,19 @@ function handleCancel() {
131135
}
132136
133137
const memberFormContentRef = ref<InstanceType<typeof MemberFormContent>>()
138+
134139
function handleAdd() {
135140
memberFormContentRef.value?.validate().then(async (valid: any) => {
136141
if (valid) {
137142
let params
138143
if (props.currentRole?.type === RoleTypeEnum.ADMIN) {
139-
params = list.value.map((item) => ({ user_ids: item.user_ids, workspace_ids: ['None'] }))
144+
params = list.value.map((item) => ({user_ids: item.user_ids, workspace_ids: ['None']}))
145+
} else if (user.isPE()) {
146+
params = list.value.map((item) => ({user_ids: item.user_ids, workspace_ids: ['default']}))
140147
}
141148
await loadPermissionApi('role').CreateMember(
142149
props.currentRole?.id as string,
143-
{ members: params ?? list.value },
150+
{members: params ?? list.value},
144151
loading,
145152
)
146153
MsgSuccess(t('common.addSuccess'))
@@ -150,5 +157,5 @@ function handleAdd() {
150157
})
151158
}
152159
153-
defineExpose({ open })
160+
defineExpose({open})
154161
</script>

ui/src/views/system/user-manage/component/UserDrawer.vue

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,11 @@
5353
<span>{{ userForm.password }}</span>
5454
</el-form-item>
5555
</el-form>
56-
<h4 class="title-decoration-1 mb-16 mt-8" v-if="user.isEE()">
56+
<h4 class="title-decoration-1 mb-16 mt-8" v-if="user.isEE() || user.isPE()">
5757
{{ $t('views.userManage.roleSetting') }}</h4>
5858
<MemberFormContent ref="memberFormContentRef" :models="formItemModel" v-model:form="list"
5959
v-loading="memberFormContentLoading"
60-
:addText="$t('views.userManage.addRole')" v-if="user.isEE()"/>
60+
:addText="$t('views.userManage.addRole')" v-if="user.isEE() || user.isPE()"/>
6161
<template #footer>
6262
<el-button @click.prevent="visible = false"> {{ $t('common.cancel') }}</el-button>
6363
<el-button type="primary" @click="submit(userFormRef)" :loading="loading">
@@ -152,9 +152,11 @@ async function getWorkspaceFormItem() {
152152
}
153153
154154
onBeforeMount(async () => {
155-
if (user.isEE()) {
155+
if (user.isEE() || user.isPE()) {
156156
await getRoleFormItem();
157-
await getWorkspaceFormItem();
157+
if (user.isEE()) {
158+
await getWorkspaceFormItem();
159+
}
158160
formItemModel.value = [...roleFormItem.value, ...workspaceFormItem.value]
159161
}
160162
list.value = [{role_id: '', workspace_ids: []}]
@@ -262,10 +264,17 @@ const submit = async (formEl: FormInstance | undefined) => {
262264
if (memberFormContentRef.value) {
263265
await memberFormContentRef.value?.validate()
264266
}
267+
if (user.isPE()) {
268+
list.value = list.value.map(item => ({
269+
...item,
270+
workspace_ids: adminRoleList.value.find(item1 => item1.id === item.role_id) ? ['None'] : ['default']
271+
}))
272+
}
265273
const params = {
266274
...userForm.value,
267275
role_setting: list.value
268276
}
277+
console.log(list.value)
269278
if (isEdit.value) {
270279
userManageApi.putUserManage(userForm.value.id, params, loading).then((res) => {
271280
emit('refresh')

ui/src/views/system/user-manage/index.vue

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
v-hasPermission="[
88
RoleConst.ADMIN,
99
PermissionConst.USER_CREATE
10-
]"
10+
]"
1111
>{{
1212
$t('views.userManage.createUser')
1313
}}
@@ -92,7 +92,7 @@
9292
</template>
9393
</el-table-column>
9494
<el-table-column prop="role" :label="$t('views.role.member.role')" min-width="100"
95-
v-if="user.isEE()">
95+
v-if="user.isEE() || user.isPE()">
9696
<template #default="{ row }">
9797
<TagGroup :tags="row.role"/>
9898
</template>
@@ -129,7 +129,7 @@
129129
size="small"
130130
v-model="row.is_active"
131131
:before-change="() => changeState(row)"
132-
v-if="hasPermission([RoleConst.ADMIN,PermissionConst.USER_EDIT],'OR')"
132+
v-if="hasPermission([RoleConst.ADMIN,PermissionConst.USER_EDIT],'OR')"
133133
/>
134134
</span>
135135
<el-divider direction="vertical"/>
@@ -146,7 +146,7 @@
146146
text
147147
@click.stop="editPwdUser(row)"
148148
:title="$t('views.userManage.setting.updatePwd')"
149-
v-if="hasPermission([RoleConst.ADMIN,PermissionConst.USER_EDIT],'OR')"
149+
v-if="hasPermission([RoleConst.ADMIN,PermissionConst.USER_EDIT],'OR')"
150150
>
151151
<el-icon><Lock/></el-icon>
152152
</el-button>
@@ -158,7 +158,7 @@
158158
text
159159
@click.stop="deleteUserManage(row)"
160160
:title="$t('common.delete')"
161-
v-if="hasPermission([RoleConst.ADMIN,PermissionConst.USER_DELETE],'OR')"
161+
v-if="hasPermission([RoleConst.ADMIN,PermissionConst.USER_DELETE],'OR')"
162162
>
163163
<el-icon><Delete/></el-icon>
164164
</el-button>

0 commit comments

Comments
 (0)