diff --git a/ui/src/stores/modules-shared-system/login.ts b/ui/src/stores/modules-shared-system/login.ts index f6999e0ac..4e1d86ee7 100644 --- a/ui/src/stores/modules-shared-system/login.ts +++ b/ui/src/stores/modules-shared-system/login.ts @@ -1,7 +1,8 @@ import {defineStore} from 'pinia' import {type Ref} from 'vue' import loginApi from '@/api/user/login' -import type {LoginRequest} from '@/api/type/login' +import type { LoginRequest } from '@/api/type/login' + import useUserStore from '@/stores/modules/user' const useLoginStore = defineStore('logi', { diff --git a/ui/src/utils/permission/data.ts b/ui/src/utils/permission/data.ts index 36838d334..7da663c54 100644 --- a/ui/src/utils/permission/data.ts +++ b/ui/src/utils/permission/data.ts @@ -1,9 +1,69 @@ import { Permission, Role, Edition } from '@/utils/permission/type' +// class Operate(Enum): +// """ +// 一个权限组的操作权限 +// """ +// READ = 'READ' +// EDIT = "READ+EDIT" +// CREATE = "READ+CREATE" +// DELETE = "READ+DELETE" +// """ +// 使用权限 +// """ +// USE = "USE" +// IMPORT = "READ+IMPORT" +// EXPORT = "READ+EXPORT" # 导入导出 +// DEBUG = "READ+DEBUG" # 调试 +// SYNC = "READ+SYNC" # 同步 +// GENERATE = "READ+GENERATE" # 生成 +// ADD_MEMBER = "READ+ADD_MEMBER" # 添加成员 +// REMOVE_MEMBER = "READ+REMOVE_MEMBER" # 添加成员 +// VECTOR = "READ+VECTOR" # 向量化 +// MIGRATE = "READ+MIGRATE" # 迁移 +// RELATE = "READ+RELATE" # 关联 +// USER_GROUP = "READ+USER_GROUP" # 用户组 +// ANNOTATION = "READ+ANNOTATION" # 标注 +// CLEAR_POLICY = "READ+CLEAR_POLICY" const PermissionConst = { USER_READ: new Permission('USER:READ'), USER_CREATE: new Permission('USER:CREATE'), - KNOWLEDGE_READ: new Permission('KNOWLEDGE:READ'), APPLICATION_OVERVIEW_READ: new Permission('APPLICATION_OVERVIEW_READ'), + + KNOWLEDGE_READ: new Permission('KNOWLEDGE:READ'), + KNOWLEDGE_CREATE: new Permission('KNOWLEDGE:READ+CREATE'), + KNOWLEDGE_SYNC: new Permission('KNOWLEDGE:READ+SYNC'), + KNOWLEDGE_VECTOR: new Permission('KNOWLEDGE:READ+VECTOR'), + KNOWLEDGE_EDIT: new Permission('KNOWLEDGE:READ+EDIT'), + KNOWLEDGE_EXPORT: new Permission('KNOWLEDGE:READ+EXPORT'), + KNOWLEDGE_DELETE: new Permission('KNOWLEDGE:READ+DELETE'), + + KNOWLEDGE_DOCUMENT_READ:new Permission('KNOWLEDGE_DOCUMENT:READ'), + KNOWLEDGE_DOCUMENT_CREATE:new Permission('KNOWLEDGE_DOCUMENT:READ+CREATE'), + KNOWLEDGE_DOCUMENT_EDIT:new Permission('KNOWLEDGE_DOCUMENT:READ+EDIT'), + KNOWLEDGE_DOCUMENT_SYNC:new Permission('KNOWLEDGE_DOCUMENT:READ+SYNC'), + KNOWLEDGE_DOCUMENT_MIGRATE:new Permission('KNOWLEDGE_DOCUMENT:READ+MIGRATE'), + KNOWLEDGE_DOCUMENT_VECTOR:new Permission('KNOWLEDGE_DOCUMENT:READ+VECTOR'), + KNOWLEDGE_DOCUMENT_GENERATE:new Permission('KNOWLEDGE_DOCUMENT:READ+GENERATE'), + KNOWLEDGE_DOCUMENT_EXPORT:new Permission('KNOWLEDGE_DOCUMENT:READ+EXPORT'), + + KNOWLEDGE_PROBLEM_READ:new Permission('KNOWLEDGE_PROBLEM:READ'), + KNOWLEDGE_PROBLEM_CREATE:new Permission('KNOWLEDGE_PROBLEM:READ+CREATE'), + KNOWLEDGE_PROBLEM_EDIT:new Permission('KNOWLEDGE_PROBLEM:READ+EDIT'), + KNOWLEDGE_PROBLEM_RELATE:new Permission('KNOWLEDGE_PROBLEM:READ+RELATE'), + KNOWLEDGE_PROBLEM_DELETE:new Permission('KNOWLEDGE_PROBLEM:READ+DELETE'), + + MODEL_READ:new Permission('MODEL:READ'), + MODEL_CREATE:new Permission('MODEL:READ+CREATE'), + MODEL_EDIT:new Permission('MODEL:READ+EDIT'), + MODEL_DELETE:new Permission('MODEL:READ+DELETE'), + + + + + SYSTEM_API_KEY_EDIT:new Permission('OTHER: READ+EDIT') + + + } const RoleConst = { ADMIN: new Role('ADMIN'), diff --git a/ui/src/views/document/index.vue b/ui/src/views/document/index.vue index afa7aa0d4..8814ff0e5 100644 --- a/ui/src/views/document/index.vue +++ b/ui/src/views/document/index.vue @@ -10,23 +10,30 @@ v-if="knowledgeDetail.type === 0" type="primary" @click="router.push({ path: '/knowledge/document/upload', query: { id: id } })" + v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getWorkspacePermission]" >{{ $t('views.document.uploadDocument') }} {{ $t('views.document.importDocument') }} + v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.KNOWLEDGE_DOCUMENT_CREATE.getWorkspacePermission]" + >{{ $t('views.document.importDocument') }} - - {{ $t('views.knowledge.setting.vectorization') }} + {{ $t('views.knowledge.setting.vectorization') }} - - {{ $t('views.document.generateQuestion.title') }} + {{ $t('views.document.generateQuestion.title') }} - - {{ $t('views.document.setting.migration') }} + {{ $t('views.document.setting.migration') }} - + @@ -116,6 +118,8 @@ import SharedWorkspace from '@/views/shared/model-shared/SharedWorkspace.vue' import SelectProviderDialog from '@/views/model/component/SelectProviderDialog.vue' import useStore from '@/stores' import { t } from '@/locales' +import { PermissionConst, RoleConst } from '@/utils/permission/data' +import { hasPermission } from '@/utils/permission/index' const { model } = useStore() diff --git a/ui/src/views/problem/index.vue b/ui/src/views/problem/index.vue index 54326f4a7..05cabe54e 100644 --- a/ui/src/views/problem/index.vue +++ b/ui/src/views/problem/index.vue @@ -7,13 +7,16 @@
{{ $t('views.problem.createProblem') }} + v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.KNOWLEDGE_PROBLEM_CREATE.getWorkspacePermission]"> + {{ $t('views.problem.createProblem') }} {{ $t('views.problem.relateParagraph.title') }} + v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.KNOWLEDGE_PROBLEM_RELATE.getWorkspacePermission]"> + {{ $t('views.problem.relateParagraph.title') }} {{ $t('views.problem.setting.batchDelete') }} + v-hasPermission="[RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.KNOWLEDGE_PROBLEM_DELETE.getWorkspacePermission]"> + {{ $t('views.problem.setting.batchDelete') }}
@@ -99,14 +102,16 @@ :content="$t('views.problem.relateParagraph.title')" placement="top" > - + - + @@ -145,6 +150,8 @@ import { MsgSuccess, MsgConfirm, MsgError } from '@/utils/message' import type { Dict } from '@/api/type/common' import useStore from '@/stores' import { t } from '@/locales' +import { PermissionConst, RoleConst } from '@/utils/permission/data' +import { hasPermission } from '@/utils/permission/index' const route = useRoute() const {