Skip to content

Commit 113c7b4

Browse files
authoredSep 27, 2024
Merge pull request #1195 from lowcoder-org/super_admin_role
added super admin role
2 parents fa14470 + 3582d7e commit 113c7b4

File tree

12 files changed

+30
-14
lines changed

12 files changed

+30
-14
lines changed
 

‎client/packages/lowcoder/src/constants/orgConstants.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,24 @@
11
import { CommonSettingResponseData } from "api/commonSettingApi";
22
import { trans } from "i18n";
33

4-
export const ADMIN_ROLE = "admin" || "super_admin";
4+
export const ADMIN_ROLE = "admin";
5+
export const SUPER_ADMIN_ROLE = "super_admin";
56
export const MEMBER_ROLE = "member";
67

78
export const NEW_ORG_PREFIX = trans("orgSettings.newOrg");
89

9-
export const TacoRoles = [ADMIN_ROLE, MEMBER_ROLE] as const;
10+
export const TacoRoles = [SUPER_ADMIN_ROLE, ADMIN_ROLE, MEMBER_ROLE] as const;
1011
export type RoleIdType = typeof TacoRoles[number];
1112
type RoleInfoType = Record<RoleIdType, { name: string; desc: string }>;
1213

1314
export const GroupRoleInfo: RoleInfoType = {
15+
super_admin: { name: trans("memberSettings.superAdmin"), desc: trans("memberSettings.adminGroupRoleInfo") },
1416
admin: { name: trans("memberSettings.admin"), desc: trans("memberSettings.adminGroupRoleInfo") },
1517
member: { name: trans("memberSettings.member"), desc: trans("memberSettings.memberGroupRoleInfo"), },
1618
};
1719

1820
export const OrgRoleInfo: RoleInfoType = {
21+
super_admin: { name: trans("memberSettings.superAdmin"), desc: trans("memberSettings.adminGroupRoleInfo") },
1922
admin: { name: trans("memberSettings.admin"), desc: trans("memberSettings.adminOrgRoleInfo") },
2023
member: { name: trans("memberSettings.member"), desc: trans("memberSettings.memberOrgRoleInfo") },
2124
};

‎client/packages/lowcoder/src/i18n/locales/de.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2270,6 +2270,7 @@ export const de = {
22702270
...en.memberSettings,
22712271

22722272
"admin": "Verwaltung",
2273+
"superAdmin": "Super Admin",
22732274
"adminGroupRoleInfo": "Admin kann Gruppenmitglieder und Ressourcen verwalten",
22742275
"adminOrgRoleInfo": "Admins besitzen alle Ressourcen und können Gruppen verwalten.",
22752276
"member": "Mitglied",

‎client/packages/lowcoder/src/i18n/locales/en.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2263,6 +2263,7 @@ export const en = {
22632263

22642264
"memberSettings": {
22652265
"admin": "Admin",
2266+
"superAdmin": "Super Admin",
22662267
"adminGroupRoleInfo": "Admin Can Manage Group Members and Resources",
22672268
"adminOrgRoleInfo": "Admins Own All Resources and Can Manage Groups.",
22682269
"member": "Member",

‎client/packages/lowcoder/src/i18n/locales/es.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2270,6 +2270,7 @@ export const es = {
22702270
...en.memberSettings,
22712271

22722272
"admin": "Admin",
2273+
"superAdmin": "Súper administrador",
22732274
"adminGroupRoleInfo": "El administrador puede gestionar los miembros y recursos del grupo",
22742275
"adminOrgRoleInfo": "Los administradores son propietarios de todos los recursos y pueden gestionar grupos.",
22752276
"member": "Miembro",

‎client/packages/lowcoder/src/i18n/locales/it.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2270,6 +2270,7 @@ export const it = {
22702270
...en.memberSettings,
22712271

22722272
"admin": "Admin",
2273+
"superAdmin": "Super amministratore",
22732274
"adminGroupRoleInfo": "L'amministratore può gestire i membri e le risorse del gruppo",
22742275
"adminOrgRoleInfo": "Gli amministratori possiedono tutte le risorse e possono gestire i gruppi.",
22752276
"member": "Membro",

‎client/packages/lowcoder/src/i18n/locales/pt.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2270,6 +2270,7 @@ export const pt = {
22702270
...en.memberSettings,
22712271

22722272
"admin": "Administrador",
2273+
"superAdmin": "Superadministrador",
22732274
"adminGroupRoleInfo": "O administrador pode gerenciar membros do grupo e recursos",
22742275
"adminOrgRoleInfo": "Os administradores possuem todos os recursos e podem gerenciar grupos.",
22752276
"member": "Membro",

‎client/packages/lowcoder/src/i18n/locales/ru.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2270,6 +2270,7 @@ export const ru = {
22702270
...en.memberSettings,
22712271

22722272
"admin": "Администратор",
2273+
"superAdmin": "Суперадминистратор",
22732274
"adminGroupRoleInfo": "Администратор может управлять членами группы и ресурсами",
22742275
"adminOrgRoleInfo": "Администраторы владеют всеми ресурсами и могут управлять группами.",
22752276
"member": "Член",

‎client/packages/lowcoder/src/i18n/locales/zh.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1738,6 +1738,7 @@ export const zh: typeof en = {
17381738
memberSettings: {
17391739
...en.memberSettings,
17401740
admin: "管理员",
1741+
superAdmin: "超级管理员",
17411742
adminGroupRoleInfo: "管理员可以管理群组成员和资源",
17421743
adminOrgRoleInfo: "拥有所有资源并可以管理群组.",
17431744
member: "成员",

‎client/packages/lowcoder/src/pages/setting/organization/orgList.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ADMIN_ROLE } from "constants/orgConstants";
1+
import { ADMIN_ROLE, SUPER_ADMIN_ROLE } from "constants/orgConstants";
22
import { AddIcon, CustomModal, DangerIcon, EditPopover } from "lowcoder-design";
33
import { useDispatch, useSelector } from "react-redux";
44
import { createOrgAction, deleteOrgAction } from "redux/reduxActions/orgActions";
@@ -128,7 +128,10 @@ type DataItemInfo = {
128128
function OrganizationSetting() {
129129
const user = useSelector(getUser);
130130
const orgs = user.orgs;
131-
const adminOrgs = orgs.filter((org) => user.orgRoleMap.get(org.id) === ADMIN_ROLE);
131+
const adminOrgs = orgs.filter((org) => {
132+
const role = user.orgRoleMap.get(org.id);
133+
return role === ADMIN_ROLE || role === SUPER_ADMIN_ROLE;
134+
});
132135
const orgCreateStatus = useSelector(getOrgCreateStatus);
133136
const dispatch = useDispatch();
134137
const sysConfig = useSelector(selectSystemConfig);

‎client/packages/lowcoder/src/pages/setting/permission/groupUsersPermission.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ function GroupUsersPermission(props: GroupPermissionProp) {
128128
key="role"
129129
render={(value, record: GroupUser) => (
130130
<CustomSelect
131-
style={{ width: "96px", height: "32px" }}
131+
style={{ width: "140px", height: "32px" }}
132132
dropdownStyle={{ width: "149px" }}
133133
defaultValue={record.role}
134134
key={record.role}

‎client/packages/lowcoder/src/pages/setting/permission/orgUsersPermission.tsx

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ADMIN_ROLE, OrgRoleInfo, OrgUser, TacoRoles } from "constants/orgConstants";
1+
import { ADMIN_ROLE, OrgRoleInfo, OrgUser, SUPER_ADMIN_ROLE, TacoRoles } from "constants/orgConstants";
22
import { User } from "constants/userConstants";
33
import {
44
ArrowIcon,
@@ -65,14 +65,16 @@ type UsersPermissionProp = {
6565
function OrgUsersPermission(props: UsersPermissionProp) {
6666
const { Column } = TableStyled;
6767
const { orgId, orgUsers, orgUsersFetching, currentUser } = props;
68-
const adminCount = orgUsers.filter((user) => user.role === ADMIN_ROLE).length;
68+
const adminCount = orgUsers.filter(
69+
(user) => user.role === ADMIN_ROLE || user.role === SUPER_ADMIN_ROLE,
70+
).length;
6971
const sysConfig = useSelector(selectSystemConfig);
7072
const dispatch = useDispatch();
7173
const sortedOrgUsers = useMemo(() => {
7274
return [...orgUsers].sort((a, b) => {
73-
if (a.role === ADMIN_ROLE) {
75+
if (a.role === ADMIN_ROLE || a.role === SUPER_ADMIN_ROLE) {
7476
return -1;
75-
} else if (b.role === ADMIN_ROLE) {
77+
} else if (b.role === ADMIN_ROLE || a.role === SUPER_ADMIN_ROLE) {
7678
return 1;
7779
} else {
7880
return b.joinTime - a.joinTime;
@@ -178,7 +180,7 @@ function OrgUsersPermission(props: UsersPermissionProp) {
178180
className="role-table-cell"
179181
render={(value, record: OrgUser) => (
180182
<CustomSelect
181-
style={{ width: "96px", height: "32px" }}
183+
style={{ width: "140px", height: "32px" }}
182184
dropdownStyle={{ width: "149px" }}
183185
defaultValue={record.role}
184186
key={record.role}

‎client/packages/lowcoder/src/util/permissionUtils.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
1-
import { ADMIN_ROLE} from "constants/orgConstants";
1+
import { ADMIN_ROLE, SUPER_ADMIN_ROLE} from "constants/orgConstants";
22
import { ApplicationMeta } from "constants/applicationConstants";
33
import { User } from "constants/userConstants";
44

55

6-
export function currentOrgAdmin(user: User) {
7-
return user.orgRoleMap.get(user.currentOrgId) === ADMIN_ROLE;
6+
export function currentOrgAdmin(user: User) {
7+
const role = user.orgRoleMap.get(user.currentOrgId);
8+
return role === ADMIN_ROLE || role === SUPER_ADMIN_ROLE;
89
}
910

1011
export function currentOrgAdminOrDev(user: User) {
1112
return user.orgDev || currentOrgAdmin(user);
1213
}
1314

1415
export function isGroupAdmin(userGroupRole: string | undefined) {
15-
return userGroupRole === ADMIN_ROLE;
16+
return userGroupRole === ADMIN_ROLE || userGroupRole === SUPER_ADMIN_ROLE;
1617
}
1718

1819
export function canManageApp(user: User, application?: ApplicationMeta) {

0 commit comments

Comments
 (0)