Skip to content

Commit f0c95eb

Browse files
committed
feat: Resource application permission
1 parent 525af67 commit f0c95eb

File tree

5 files changed

+101
-135
lines changed

5 files changed

+101
-135
lines changed

ui/src/permission/application/system-manage.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,5 +102,34 @@ const systemManage = {
102102
],
103103
'OR'
104104
),
105+
overview_read: () =>
106+
hasPermission(
107+
[
108+
RoleConst.ADMIN,
109+
PermissionConst.RESOURCE_APPLICATION_OVERVIEW_READ
110+
],
111+
'OR'
112+
),
113+
access_read: () =>
114+
hasPermission(
115+
[
116+
RoleConst.ADMIN,
117+
PermissionConst.RESOURCE_APPLICATION_ACCESS_READ
118+
],'OR'
119+
),
120+
chat_user_read: () =>
121+
hasPermission(
122+
[
123+
RoleConst.ADMIN,
124+
PermissionConst.RESOURCE_APPLICATION_CHAT_USER_READ
125+
],'OR'
126+
),
127+
chat_log_read: () =>
128+
hasPermission(
129+
[
130+
RoleConst.ADMIN,
131+
PermissionConst.RESOURCE_APPLICATION_CHAT_LOG_READ
132+
],
133+
'OR')
105134
}
106135
export default systemManage

ui/src/permission/application/workspace.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,10 @@ const workspace = {
164164
],
165165
'OR'
166166
),
167+
overview_read: () => false,
168+
access_read: () => false,
169+
chat_user_read: () => false,
170+
chat_log_read: () => false
167171
}
168172

169173

ui/src/router/modules/application-detail.ts

Lines changed: 45 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,16 @@ const ApplicationDetailRouter = {
3333
return PermissionConst.APPLICATION_OVERVIEW_READ.getApplicationWorkspaceResourcePermission(
3434
to ? to.params.id : '',
3535
)
36-
}
36+
},
37+
() => {
38+
const to: any = get_next_route()
39+
if (to.path.includes('resource-management')) {return RoleConst.ADMIN}
40+
},
41+
() => {
42+
const to: any = get_next_route()
43+
console.log('ss',to)
44+
if (to.path.includes('resource-management')) { return PermissionConst.RESOURCE_APPLICATION_OVERVIEW_READ}
45+
},
3746
]
3847
},
3948
component: () => import('@/views/application-overview/index.vue'),
@@ -59,7 +68,15 @@ const ApplicationDetailRouter = {
5968
return PermissionConst.APPLICATION_EDIT.getApplicationWorkspaceResourcePermission(
6069
to ? to.params.id : '',
6170
)
62-
}
71+
},
72+
() => {
73+
const to: any = get_next_route()
74+
if (to.path.includes('resource-management')) {return RoleConst.ADMIN}
75+
},
76+
()=>{
77+
const to: any = get_next_route()
78+
if (to.path.includes('resource-management')) { return PermissionConst.RESOURCE_APPLICATION_EDIT}
79+
},
6380
]
6481
},
6582
component: () => import('@/views/application/ApplicationSetting.vue'),
@@ -84,6 +101,14 @@ const ApplicationDetailRouter = {
84101
return PermissionConst.APPLICATION_ACCESS_READ.getApplicationWorkspaceResourcePermission(
85102
to ? to.params.id : '',)
86103
}],[EditionConst.IS_EE, EditionConst.IS_PE],'OR'),
104+
() => {
105+
const to: any = get_next_route()
106+
if (to.path.includes('resource-management')) {return RoleConst.ADMIN}
107+
},
108+
()=>{
109+
const to: any = get_next_route()
110+
if (to.path.includes('resource-management')) { return PermissionConst.RESOURCE_APPLICATION_ACCESS_READ}
111+
},
87112
]
88113
},
89114
component: () => import('@/views/application/ApplicationAccess.vue'),
@@ -109,7 +134,15 @@ const ApplicationDetailRouter = {
109134
const to: any = get_next_route()
110135
return new ComplexPermission([],[PermissionConst.APPLICATION_CHAT_USER_READ.getApplicationWorkspaceResourcePermission(
111136
to ? to.params.id : '',)],[EditionConst.IS_EE, EditionConst.IS_PE],'OR')
112-
}
137+
},
138+
() => {
139+
const to: any = get_next_route()
140+
if (to.path.includes('resource-management')) {return RoleConst.ADMIN}
141+
},
142+
()=>{
143+
const to: any = get_next_route()
144+
if (to.path.includes('resource-management')) { return PermissionConst.RESOURCE_APPLICATION_CHAT_USER_READ}
145+
},
113146
]
114147
},
115148
component: () => import('@/views/chat-user/index.vue'),
@@ -135,7 +168,15 @@ const ApplicationDetailRouter = {
135168
return PermissionConst.APPLICATION_CHAT_LOG_READ.getApplicationWorkspaceResourcePermission(
136169
to ? to.params.id : '',
137170
)
138-
}
171+
},
172+
() => {
173+
const to: any = get_next_route()
174+
if (to.path.includes('resource-management')) {return RoleConst.ADMIN}
175+
},
176+
()=>{
177+
const to: any = get_next_route()
178+
if (to.path.includes('resource-management')) { return PermissionConst.RESOURCE_APPLICATION_CHAT_LOG_READ}
179+
},
139180
]
140181
},
141182
component: () => import('@/views/chat-log/index.vue'),

ui/src/views/chat-user/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ const permissionObj = ref<any>({
259259
[],
260260
'OR',
261261
),
262-
APPLICATION_KNOWLEDGE: [RoleConst.ADMIN, PermissionConst.RESOURCE_APPLICATION_CHAT_USER_EDIT],
262+
RESOURCE_APPLICATION: [RoleConst.ADMIN, PermissionConst.RESOURCE_APPLICATION_CHAT_USER_EDIT],
263263
RESOURCE_KNOWLEDGE: [RoleConst.ADMIN, PermissionConst.RESOURCE_KNOWLEDGE_CHAT_USER_EDIT],
264264
SHAREDKNOWLEDGE: new ComplexPermission(
265265
[RoleConst.ADMIN],

ui/src/views/system-resource-management/ApplicationResourceIndex.vue

Lines changed: 22 additions & 130 deletions
Original file line numberDiff line numberDiff line change
@@ -241,19 +241,26 @@
241241
effect="dark"
242242
:content="$t('views.system.resource_management.management')"
243243
placement="top"
244+
v-if="managePermission()"
244245
>
245246
<span class="mr-8">
246247
<el-button
247248
type="primary"
248249
text
249250
:title="$t('views.system.resource_management.management')"
250-
@click="goApp(row)"
251+
@click="
252+
router.push({
253+
path: `/application/resource-management/${row.id}/${row.type}/overview`,
254+
})
255+
"
251256
>
252257
<AppIcon iconName="app-admin-operation"></AppIcon>
253258
</el-button>
254259
</span>
255260
</el-tooltip>
256-
<el-dropdown trigger="click">
261+
<el-dropdown trigger="click"
262+
v-if="MoreFilledPermission()"
263+
>
257264
<el-button text @click.stop>
258265
<el-icon>
259266
<MoreFilled />
@@ -295,9 +302,6 @@ import { datetimeFormat } from '@/utils/time'
295302
import { loadPermissionApi } from '@/utils/dynamics-api/permission-api.ts'
296303
import { isWorkFlow } from '@/utils/application.ts'
297304
import UserApi from '@/api/user/user.ts'
298-
import { hasPermission } from '@/utils/permission'
299-
import { ComplexPermission } from '@/utils/permission/type'
300-
import { EditionConst, PermissionConst, RoleConst } from '@/utils/permission/data'
301305
import permissionMap from '@/permission'
302306
import { MsgSuccess, MsgConfirm, MsgError } from '@/utils/message'
303307
@@ -309,6 +313,19 @@ const permissionPrecise = computed(() => {
309313
return permissionMap['application']['systemManage']
310314
})
311315
316+
const managePermission = () => {
317+
return permissionPrecise.value.overview_read() ||
318+
permissionPrecise.value.access_read() ||
319+
permissionPrecise.value.edit() ||
320+
permissionPrecise.value.chat_log_read() ||
321+
permissionPrecise.value.chat_user_read()
322+
}
323+
324+
const MoreFilledPermission = () => {
325+
return permissionPrecise.value.export() ||
326+
permissionPrecise.value.delete()
327+
}
328+
312329
const apiInputParams = ref([])
313330
function toChat(row: any) {
314331
row?.work_flow?.nodes
@@ -396,131 +413,6 @@ const paginationConfig = reactive({
396413
total: 0,
397414
})
398415
399-
const goApp = (item: any) => {
400-
router.push({ path: get_route(item) })
401-
}
402-
403-
const get_route = (item: any) => {
404-
if (
405-
hasPermission(
406-
[
407-
new ComplexPermission(
408-
[RoleConst.USER],
409-
[PermissionConst.APPLICATION.getApplicationWorkspaceResourcePermission(item.id)],
410-
[],
411-
'AND',
412-
),
413-
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
414-
PermissionConst.APPLICATION_OVERVIEW_READ.getWorkspacePermissionWorkspaceManageRole,
415-
PermissionConst.APPLICATION_OVERVIEW_READ.getApplicationWorkspaceResourcePermission(
416-
item.id,
417-
),
418-
],
419-
'OR',
420-
)
421-
) {
422-
return `/application/resource-management/${item.id}/${item.type}/overview`
423-
} else if (
424-
hasPermission(
425-
[
426-
new ComplexPermission(
427-
[RoleConst.USER],
428-
[PermissionConst.APPLICATION.getApplicationWorkspaceResourcePermission(item.id)],
429-
[],
430-
'AND',
431-
),
432-
RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
433-
PermissionConst.APPLICATION_EDIT.getWorkspacePermissionWorkspaceManageRole,
434-
PermissionConst.APPLICATION_EDIT.getApplicationWorkspaceResourcePermission(item.id),
435-
],
436-
'OR',
437-
)
438-
) {
439-
if (item.type == 'WORK_FLOW') {
440-
return `/application/resource-management/${item.id}/workflow`
441-
} else {
442-
return `/application/resource-management/${item.id}/${item.type}/setting`
443-
}
444-
} else if (
445-
hasPermission(
446-
[
447-
new ComplexPermission(
448-
[RoleConst.USER],
449-
[PermissionConst.APPLICATION.getApplicationWorkspaceResourcePermission(item.id)],
450-
[EditionConst.IS_EE, EditionConst.IS_PE],
451-
'AND',
452-
),
453-
new ComplexPermission(
454-
[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole],
455-
[PermissionConst.APPLICATION_ACCESS_READ.getWorkspacePermissionWorkspaceManageRole],
456-
[EditionConst.IS_EE, EditionConst.IS_PE],
457-
'OR',
458-
),
459-
new ComplexPermission(
460-
[],
461-
[
462-
PermissionConst.APPLICATION_ACCESS_READ.getApplicationWorkspaceResourcePermission(
463-
item.id,
464-
),
465-
],
466-
[EditionConst.IS_EE, EditionConst.IS_PE],
467-
'OR',
468-
),
469-
],
470-
'OR',
471-
)
472-
) {
473-
return `/application/resource-management/${item.id}/${item.type}/access`
474-
} else if (
475-
hasPermission(
476-
[
477-
new ComplexPermission(
478-
[RoleConst.USER],
479-
[PermissionConst.APPLICATION.getApplicationWorkspaceResourcePermission(item.id)],
480-
[EditionConst.IS_EE, EditionConst.IS_PE],
481-
'AND',
482-
),
483-
new ComplexPermission(
484-
[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole],
485-
[PermissionConst.APPLICATION_CHAT_USER_READ.getWorkspacePermissionWorkspaceManageRole],
486-
[EditionConst.IS_EE, EditionConst.IS_PE],
487-
'OR',
488-
),
489-
new ComplexPermission(
490-
[],
491-
[
492-
PermissionConst.APPLICATION_CHAT_USER_READ.getApplicationWorkspaceResourcePermission(
493-
item.id,
494-
),
495-
],
496-
[EditionConst.IS_EE, EditionConst.IS_PE],
497-
'OR',
498-
),
499-
],
500-
'OR',
501-
)
502-
) {
503-
return `/application/resource-management/${item.id}/${item.type}/chat-user`
504-
} else if (
505-
hasPermission(
506-
[
507-
new ComplexPermission(
508-
[RoleConst.USER],
509-
[PermissionConst.APPLICATION.getApplicationWorkspaceResourcePermission(item.id)],
510-
[],
511-
'AND',
512-
),
513-
PermissionConst.APPLICATION_CHAT_LOG_READ.getWorkspacePermissionWorkspaceManageRole,
514-
PermissionConst.APPLICATION_CHAT_LOG_READ.getApplicationWorkspaceResourcePermission(
515-
item.id,
516-
),
517-
],
518-
'OR',
519-
)
520-
) {
521-
return `/application/resource-management/${item.id}/${item.type}/chat-log`
522-
} else return `/system/resource-management/application/`
523-
}
524416
525417
const workspaceOptions = ref<any[]>([])
526418
const workspaceVisible = ref(false)

0 commit comments

Comments
 (0)