diff --git a/client/packages/lowcoder/src/constants/orgConstants.ts b/client/packages/lowcoder/src/constants/orgConstants.ts index 8c4d0da57..b4d772e62 100644 --- a/client/packages/lowcoder/src/constants/orgConstants.ts +++ b/client/packages/lowcoder/src/constants/orgConstants.ts @@ -1,21 +1,24 @@ import { CommonSettingResponseData } from "api/commonSettingApi"; import { trans } from "i18n"; -export const ADMIN_ROLE = "admin" || "super_admin"; +export const ADMIN_ROLE = "admin"; +export const SUPER_ADMIN_ROLE = "super_admin"; export const MEMBER_ROLE = "member"; export const NEW_ORG_PREFIX = trans("orgSettings.newOrg"); -export const TacoRoles = [ADMIN_ROLE, MEMBER_ROLE] as const; +export const TacoRoles = [SUPER_ADMIN_ROLE, ADMIN_ROLE, MEMBER_ROLE] as const; export type RoleIdType = typeof TacoRoles[number]; type RoleInfoType = Record; export const GroupRoleInfo: RoleInfoType = { + super_admin: { name: trans("memberSettings.superAdmin"), desc: trans("memberSettings.adminGroupRoleInfo") }, admin: { name: trans("memberSettings.admin"), desc: trans("memberSettings.adminGroupRoleInfo") }, member: { name: trans("memberSettings.member"), desc: trans("memberSettings.memberGroupRoleInfo"), }, }; export const OrgRoleInfo: RoleInfoType = { + super_admin: { name: trans("memberSettings.superAdmin"), desc: trans("memberSettings.adminGroupRoleInfo") }, admin: { name: trans("memberSettings.admin"), desc: trans("memberSettings.adminOrgRoleInfo") }, member: { name: trans("memberSettings.member"), desc: trans("memberSettings.memberOrgRoleInfo") }, }; diff --git a/client/packages/lowcoder/src/i18n/locales/de.ts b/client/packages/lowcoder/src/i18n/locales/de.ts index 4cb2afd30..c8aa8a3bd 100644 --- a/client/packages/lowcoder/src/i18n/locales/de.ts +++ b/client/packages/lowcoder/src/i18n/locales/de.ts @@ -2270,6 +2270,7 @@ export const de = { ...en.memberSettings, "admin": "Verwaltung", + "superAdmin": "Super Admin", "adminGroupRoleInfo": "Admin kann Gruppenmitglieder und Ressourcen verwalten", "adminOrgRoleInfo": "Admins besitzen alle Ressourcen und können Gruppen verwalten.", "member": "Mitglied", diff --git a/client/packages/lowcoder/src/i18n/locales/en.ts b/client/packages/lowcoder/src/i18n/locales/en.ts index 03cedc4e6..108d3f8d4 100644 --- a/client/packages/lowcoder/src/i18n/locales/en.ts +++ b/client/packages/lowcoder/src/i18n/locales/en.ts @@ -2263,6 +2263,7 @@ export const en = { "memberSettings": { "admin": "Admin", + "superAdmin": "Super Admin", "adminGroupRoleInfo": "Admin Can Manage Group Members and Resources", "adminOrgRoleInfo": "Admins Own All Resources and Can Manage Groups.", "member": "Member", diff --git a/client/packages/lowcoder/src/i18n/locales/es.ts b/client/packages/lowcoder/src/i18n/locales/es.ts index eb95a9252..cc34f4b10 100644 --- a/client/packages/lowcoder/src/i18n/locales/es.ts +++ b/client/packages/lowcoder/src/i18n/locales/es.ts @@ -2270,6 +2270,7 @@ export const es = { ...en.memberSettings, "admin": "Admin", + "superAdmin": "Súper administrador", "adminGroupRoleInfo": "El administrador puede gestionar los miembros y recursos del grupo", "adminOrgRoleInfo": "Los administradores son propietarios de todos los recursos y pueden gestionar grupos.", "member": "Miembro", diff --git a/client/packages/lowcoder/src/i18n/locales/it.ts b/client/packages/lowcoder/src/i18n/locales/it.ts index b707dd66f..0701a2c36 100644 --- a/client/packages/lowcoder/src/i18n/locales/it.ts +++ b/client/packages/lowcoder/src/i18n/locales/it.ts @@ -2270,6 +2270,7 @@ export const it = { ...en.memberSettings, "admin": "Admin", + "superAdmin": "Super amministratore", "adminGroupRoleInfo": "L'amministratore può gestire i membri e le risorse del gruppo", "adminOrgRoleInfo": "Gli amministratori possiedono tutte le risorse e possono gestire i gruppi.", "member": "Membro", diff --git a/client/packages/lowcoder/src/i18n/locales/pt.ts b/client/packages/lowcoder/src/i18n/locales/pt.ts index f13bf1341..44952a10a 100644 --- a/client/packages/lowcoder/src/i18n/locales/pt.ts +++ b/client/packages/lowcoder/src/i18n/locales/pt.ts @@ -2270,6 +2270,7 @@ export const pt = { ...en.memberSettings, "admin": "Administrador", + "superAdmin": "Superadministrador", "adminGroupRoleInfo": "O administrador pode gerenciar membros do grupo e recursos", "adminOrgRoleInfo": "Os administradores possuem todos os recursos e podem gerenciar grupos.", "member": "Membro", diff --git a/client/packages/lowcoder/src/i18n/locales/ru.ts b/client/packages/lowcoder/src/i18n/locales/ru.ts index 937e84e04..fb93fb140 100644 --- a/client/packages/lowcoder/src/i18n/locales/ru.ts +++ b/client/packages/lowcoder/src/i18n/locales/ru.ts @@ -2270,6 +2270,7 @@ export const ru = { ...en.memberSettings, "admin": "Администратор", + "superAdmin": "Суперадминистратор", "adminGroupRoleInfo": "Администратор может управлять членами группы и ресурсами", "adminOrgRoleInfo": "Администраторы владеют всеми ресурсами и могут управлять группами.", "member": "Член", diff --git a/client/packages/lowcoder/src/i18n/locales/zh.ts b/client/packages/lowcoder/src/i18n/locales/zh.ts index 2f8ee9944..69c2808fd 100644 --- a/client/packages/lowcoder/src/i18n/locales/zh.ts +++ b/client/packages/lowcoder/src/i18n/locales/zh.ts @@ -1738,6 +1738,7 @@ export const zh: typeof en = { memberSettings: { ...en.memberSettings, admin: "管理员", + superAdmin: "超级管理员", adminGroupRoleInfo: "管理员可以管理群组成员和资源", adminOrgRoleInfo: "拥有所有资源并可以管理群组.", member: "成员", diff --git a/client/packages/lowcoder/src/pages/setting/organization/orgList.tsx b/client/packages/lowcoder/src/pages/setting/organization/orgList.tsx index 0db0e6235..ba99bc7df 100644 --- a/client/packages/lowcoder/src/pages/setting/organization/orgList.tsx +++ b/client/packages/lowcoder/src/pages/setting/organization/orgList.tsx @@ -1,4 +1,4 @@ -import { ADMIN_ROLE } from "constants/orgConstants"; +import { ADMIN_ROLE, SUPER_ADMIN_ROLE } from "constants/orgConstants"; import { AddIcon, CustomModal, DangerIcon, EditPopover } from "lowcoder-design"; import { useDispatch, useSelector } from "react-redux"; import { createOrgAction, deleteOrgAction } from "redux/reduxActions/orgActions"; @@ -128,7 +128,10 @@ type DataItemInfo = { function OrganizationSetting() { const user = useSelector(getUser); const orgs = user.orgs; - const adminOrgs = orgs.filter((org) => user.orgRoleMap.get(org.id) === ADMIN_ROLE); + const adminOrgs = orgs.filter((org) => { + const role = user.orgRoleMap.get(org.id); + return role === ADMIN_ROLE || role === SUPER_ADMIN_ROLE; + }); const orgCreateStatus = useSelector(getOrgCreateStatus); const dispatch = useDispatch(); const sysConfig = useSelector(selectSystemConfig); diff --git a/client/packages/lowcoder/src/pages/setting/permission/groupUsersPermission.tsx b/client/packages/lowcoder/src/pages/setting/permission/groupUsersPermission.tsx index 4bf28dde5..c0f7c79d8 100644 --- a/client/packages/lowcoder/src/pages/setting/permission/groupUsersPermission.tsx +++ b/client/packages/lowcoder/src/pages/setting/permission/groupUsersPermission.tsx @@ -128,7 +128,7 @@ function GroupUsersPermission(props: GroupPermissionProp) { key="role" render={(value, record: GroupUser) => ( user.role === ADMIN_ROLE).length; + const adminCount = orgUsers.filter( + (user) => user.role === ADMIN_ROLE || user.role === SUPER_ADMIN_ROLE, + ).length; const sysConfig = useSelector(selectSystemConfig); const dispatch = useDispatch(); const sortedOrgUsers = useMemo(() => { return [...orgUsers].sort((a, b) => { - if (a.role === ADMIN_ROLE) { + if (a.role === ADMIN_ROLE || a.role === SUPER_ADMIN_ROLE) { return -1; - } else if (b.role === ADMIN_ROLE) { + } else if (b.role === ADMIN_ROLE || a.role === SUPER_ADMIN_ROLE) { return 1; } else { return b.joinTime - a.joinTime; @@ -178,7 +180,7 @@ function OrgUsersPermission(props: UsersPermissionProp) { className="role-table-cell" render={(value, record: OrgUser) => (