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) {