From c6e58291f718c7b2e7e1416f616c42f32b37ac42 Mon Sep 17 00:00:00 2001 From: Finley Ge <32237950+FinleyGe@users.noreply.github.com> Date: Mon, 11 Aug 2025 21:46:27 +0800 Subject: [PATCH] fix: permission can not edit admin permission (#5433) --- packages/global/common/error/code/app.ts | 7 ++++++- packages/global/common/error/code/dataset.ts | 7 ++++++- packages/web/i18n/en/common.json | 2 ++ packages/web/i18n/zh-CN/common.json | 2 ++ packages/web/i18n/zh-Hant/common.json | 2 ++ .../permission/MemberManager/MemberItemCard.tsx | 6 +++--- .../support/permission/MemberManager/RoleSelect.tsx | 11 ++++++----- .../support/permission/MemberManager/context.tsx | 3 +++ 8 files changed, 30 insertions(+), 10 deletions(-) diff --git a/packages/global/common/error/code/app.ts b/packages/global/common/error/code/app.ts index e6a25136a..45b2e3cc3 100644 --- a/packages/global/common/error/code/app.ts +++ b/packages/global/common/error/code/app.ts @@ -5,7 +5,8 @@ export enum AppErrEnum { unExist = 'appUnExist', unAuthApp = 'unAuthApp', invalidOwner = 'invalidOwner', - invalidAppType = 'invalidAppType' + invalidAppType = 'invalidAppType', + canNotEditAdminPermission = 'canNotEditAdminPermission' } const appErrList = [ { @@ -23,6 +24,10 @@ const appErrList = [ { statusText: AppErrEnum.invalidAppType, message: i18nT('common:code_error.app_error.invalid_app_type') + }, + { + statusText: AppErrEnum.canNotEditAdminPermission, + message: i18nT('common:code_error.app_error.can_not_edit_admin_permission') } ]; export default appErrList.reduce((acc, cur, index) => { diff --git a/packages/global/common/error/code/dataset.ts b/packages/global/common/error/code/dataset.ts index 0798bc450..a3591fca5 100644 --- a/packages/global/common/error/code/dataset.ts +++ b/packages/global/common/error/code/dataset.ts @@ -14,7 +14,8 @@ export enum DatasetErrEnum { invalidVectorModelOrQAModel = 'invalidVectorModelOrQAModel', notSupportSync = 'notSupportSync', sameApiCollection = 'sameApiCollection', - noApiServer = 'noApiServer' + noApiServer = 'noApiServer', + canNotEditAdminPermission = 'canNotEditAdminPermission' } const datasetErr = [ { @@ -60,6 +61,10 @@ const datasetErr = [ { statusText: DatasetErrEnum.invalidVectorModelOrQAModel, message: 'core.dataset.error.invalidVectorModelOrQAModel' + }, + { + statusText: DatasetErrEnum.canNotEditAdminPermission, + message: 'core.dataset.error.canNotEditAdminPermission' } ]; export default datasetErr.reduce((acc, cur, index) => { diff --git a/packages/web/i18n/en/common.json b/packages/web/i18n/en/common.json index e218e8524..df71646a8 100644 --- a/packages/web/i18n/en/common.json +++ b/packages/web/i18n/en/common.json @@ -133,6 +133,7 @@ "code_error.app_error.invalid_owner": "Unauthorized Application Owner", "code_error.app_error.not_exist": "Application Does Not Exist", "code_error.app_error.un_auth_app": "Unauthorized to Operate This Application", + "code_error.app_error.can_not_edit_admin_permission": "Can not edit admin permission", "code_error.chat_error.un_auth": "Unauthorized to Operate This Chat Record", "code_error.error_code.400": "Request Failed", "code_error.error_code.401": "No Access Permission", @@ -485,6 +486,7 @@ "core.dataset.error.unCreateCollection": "Unauthorized to Operate This Data", "core.dataset.error.unExistDataset": "The knowledge base does not exist", "core.dataset.error.unLinkCollection": "Not a Web Link Collection", + "core.dataset.error.canNotEditAdminPermission": "You cannot edit the admin permission", "core.dataset.externalFile": "External File Library", "core.dataset.file": "File", "core.dataset.folder": "Directory", diff --git a/packages/web/i18n/zh-CN/common.json b/packages/web/i18n/zh-CN/common.json index 3f0f4b614..bdc852e7d 100644 --- a/packages/web/i18n/zh-CN/common.json +++ b/packages/web/i18n/zh-CN/common.json @@ -134,6 +134,7 @@ "code_error.app_error.not_exist": "应用不存在", "code_error.app_error.un_auth_app": "无权操作该应用", "code_error.chat_error.un_auth": "没有权限操作此对话记录", + "code_error.app_error.can_not_edit_admin_permission": "不能编辑管理员权限", "code_error.error_code.400": "请求失败", "code_error.error_code.401": "无访问权限", "code_error.error_code.403": "紧张访问", @@ -485,6 +486,7 @@ "core.dataset.error.unCreateCollection": "无权操作该数据", "core.dataset.error.unExistDataset": "知识库不存在", "core.dataset.error.unLinkCollection": "不是网络链接集合", + "core.dataset.error.canNotEditAdminPermission": "无法修改管理员权限", "core.dataset.externalFile": "外部文件库", "core.dataset.file": "文件", "core.dataset.folder": "目录", diff --git a/packages/web/i18n/zh-Hant/common.json b/packages/web/i18n/zh-Hant/common.json index 601588971..6f2b574d8 100644 --- a/packages/web/i18n/zh-Hant/common.json +++ b/packages/web/i18n/zh-Hant/common.json @@ -134,6 +134,7 @@ "code_error.app_error.not_exist": "應用程式不存在", "code_error.app_error.un_auth_app": "無權操作此應用程式", "code_error.chat_error.un_auth": "沒有權限操作此對話記錄", + "code_error.app_error.can_not_edit_admin_permission": "不能編輯管理員權限", "code_error.error_code.400": "請求失敗", "code_error.error_code.401": "無存取權限", "code_error.error_code.403": "禁止存取", @@ -485,6 +486,7 @@ "core.dataset.error.unCreateCollection": "無權操作此資料", "core.dataset.error.unExistDataset": "知識庫不存在", "core.dataset.error.unLinkCollection": "不是網路連結集合", + "core.dataset.error.canNotEditAdminPermission": "無法修改管理員權限", "core.dataset.externalFile": "外部檔案庫", "core.dataset.file": "檔案", "core.dataset.folder": "目錄", diff --git a/projects/app/src/components/support/permission/MemberManager/MemberItemCard.tsx b/projects/app/src/components/support/permission/MemberManager/MemberItemCard.tsx index a91833ec7..5811fd7a6 100644 --- a/projects/app/src/components/support/permission/MemberManager/MemberItemCard.tsx +++ b/projects/app/src/components/support/permission/MemberManager/MemberItemCard.tsx @@ -15,7 +15,7 @@ function MemberItemCard({ isChecked, onDelete, name, - role: permission, + role, orgs, addOnly, rightSlot @@ -31,7 +31,7 @@ function MemberItemCard({ orgs?: string[]; rightSlot?: React.ReactNode; }) { - const isAdded = addOnly && !!permission; + const isAdded = addOnly && !!role; const onChange = () => { if (!isAdded) _onChange(); }; @@ -61,7 +61,7 @@ function MemberItemCard({ {orgs && orgs.length > 0 && } - {!isAdded && permission && } + {!isAdded && role && } {isAdded && ( - {roleOptions.checkboxList.length > 0 && ( - - {t('common:permission_other')} - + <> + + + {t('common:permission_other')} + + )} {roleOptions.checkboxList.map((item) => { diff --git a/projects/app/src/components/support/permission/MemberManager/context.tsx b/projects/app/src/components/support/permission/MemberManager/context.tsx index e8265904f..18b3aadc5 100644 --- a/projects/app/src/components/support/permission/MemberManager/context.tsx +++ b/projects/app/src/components/support/permission/MemberManager/context.tsx @@ -136,6 +136,9 @@ const CollaboratorContextProvider = ({ const Per = new Permission({ role }); const labels: string[] = []; + if (Per.isOwner) { + return [t('common:permission.Owner')]; + } if (Per.hasManagePer) { labels.push(t(roleList['manage'].name as any)); } else if (Per.hasWritePer) {