Skip to content

Commit d6a0ec9

Browse files
authored
Merge pull request #676 from actiontech/temporary/optmize-permission
Temporary/optmize permission
2 parents 7654a29 + 2b09ae5 commit d6a0ec9

File tree

122 files changed

+11101
-4285
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

122 files changed

+11101
-4285
lines changed

packages/base/src/App.tsx

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ function App() {
124124

125125
const { isDriverInfoFetched, updateDriverList } = useDbServiceDriver();
126126

127-
const { checkPagePermission } = usePermission();
127+
const { checkPagePermission, userOperationPermissions } = usePermission();
128128

129129
// #if [ee]
130130
const { syncWebTitleAndLogo } = useSystemConfig();
@@ -158,11 +158,20 @@ function App() {
158158
}, verifiedRoutes);
159159
};
160160

161-
if (isUserInfoFetched && isFeatureSupportFetched) {
161+
if (
162+
isUserInfoFetched &&
163+
isFeatureSupportFetched &&
164+
userOperationPermissions
165+
) {
162166
return filterRoutesByPermission(AuthRouterConfig);
163167
}
164168
return AuthRouterConfig;
165-
}, [checkPagePermission, isFeatureSupportFetched, isUserInfoFetched]);
169+
}, [
170+
checkPagePermission,
171+
isFeatureSupportFetched,
172+
isUserInfoFetched,
173+
userOperationPermissions
174+
]);
166175

167176
const elements = useRoutes(
168177
token ? (AuthRouterConfigData as RouteObject[]) : unAuthRouterConfig

packages/base/src/components/ProjectTagList/index.tsx

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,24 @@ import { BasicTag } from '@actiontech/shared';
33
import { Space } from 'antd';
44
import { useMemo, useState } from 'react';
55
import { FlagFilled } from '@actiontech/icons';
6+
import { useCurrentProject } from '@actiontech/shared/lib/features';
67

78
export interface ProjectTagListProps {
89
projectList?: string[];
910
maxDisplayCount?: number;
11+
highlightCurrentProject?: boolean;
1012
}
1113

1214
const ProjectTagList: React.FC<ProjectTagListProps> = ({
1315
projectList = [],
14-
maxDisplayCount = 3
16+
maxDisplayCount = 3,
17+
highlightCurrentProject
1518
}) => {
1619
const { t } = useTranslation();
1720
const [expanded, setExpanded] = useState(false);
1821

22+
const { projectName } = useCurrentProject();
23+
1924
const displayProjects = useMemo(() => {
2025
return expanded ? projectList : projectList.slice(0, maxDisplayCount);
2126
}, [expanded, projectList, maxDisplayCount]);
@@ -36,7 +41,11 @@ const ProjectTagList: React.FC<ProjectTagListProps> = ({
3641
<BasicTag
3742
style={{ height: 28 }}
3843
size="small"
39-
color="gray"
44+
color={
45+
project === projectName && highlightCurrentProject
46+
? 'orange'
47+
: 'gray'
48+
}
4049
key={project}
4150
>
4251
<FlagFilled />

packages/base/src/data/ModalName.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ export enum ModalName {
22
// userCenter manage
33
DMS_Add_Role = 'DMS_ADD_ROLE',
44
DMS_Update_Role = 'DMS_UPDATE_ROLE',
5+
DMS_Clone_Role = 'DMS_CLONE_ROLE',
56

67
DMS_Add_User = 'DMS_ADD_USER',
78
DMS_Update_User = 'DMS_UPDATE_USER',
@@ -14,6 +15,7 @@ export enum ModalName {
1415
DMS_Update_Member = 'DMS_UPDATE_MEMBER',
1516
DMS_Add_Member_Group = 'DMS_Add_Member_Group',
1617
DMS_Update_Member_Group = 'DMS_Update_Member_Group',
18+
DMS_Manage_Member_Group = 'DMS_Manage_Member_Group',
1719

1820
// project manage
1921
DMS_Add_Project = 'DMS_ADD_PROJECT',

packages/base/src/hooks/useOpPermission/index.tsx

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
import { useCallback, useState, useMemo } from 'react';
22
import { useBoolean } from 'ahooks';
33
import { ResponseCode } from '@actiontech/shared/lib/enum';
4-
import { ListOpPermissionsFilterByTargetEnum } from '@actiontech/shared/lib/api/base/service/OpPermission/index.enum';
4+
import {
5+
ListOpPermissionsFilterByTargetEnum,
6+
ListOpPermissionsServiceEnum
7+
} from '@actiontech/shared/lib/api/base/service/OpPermission/index.enum';
58
import { IListOpPermission } from '@actiontech/shared/lib/api/base/service/common';
6-
import OpPermission from '@actiontech/shared/lib/api/base/service/OpPermission';
9+
import { DmsApi } from '@actiontech/shared/lib/api';
710
import { Select, Tooltip } from 'antd';
811

912
const useOpPermission = () => {
@@ -17,9 +20,14 @@ const useOpPermission = () => {
1720
filterBy: ListOpPermissionsFilterByTargetEnum = ListOpPermissionsFilterByTargetEnum.all
1821
) => {
1922
setTrue();
20-
OpPermission.ListOpPermissions({
23+
let service: ListOpPermissionsServiceEnum | undefined = undefined;
24+
// #if [sqle && !dms]
25+
service = ListOpPermissionsServiceEnum.sqle;
26+
// #endif
27+
DmsApi.OpPermissionService.ListOpPermissions({
2128
page_size: 9999,
22-
filter_by_target: filterBy
29+
filter_by_target: filterBy,
30+
service
2331
})
2432
.then((res) => {
2533
if (res.data.code === ResponseCode.SUCCESS) {

packages/base/src/locale/zh-CN/dmsMember.ts

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,24 @@ export default {
77
deleteConfirmTitle: '确定要移除成员:{{name}}?',
88
deleteSuccessTips: '移除成员{{name}}成功',
99
columns: {
10-
opRanges: '当前项目权限',
11-
opRangeTips: '格式 角色: [操作范围11,操作范围2 ...]',
10+
opRanges: '当前项目操作权限',
11+
opRangeTips: '格式:数据源+角色',
1212
isProjectAdmin: '项目管理员',
13+
projectManagePermissions: '当前项目管理权限',
1314
projects: '所属项目',
1415
projectsCount: '+{{count}}个项目',
15-
platformRoles: '平台角色'
16+
platformRoles: '平台角色',
17+
sourceFromMemberGroup: '来源于 成员组{{groupName}}',
18+
sourceFromDorectPermission: '来源于 直接授权',
19+
permissions: '权限',
20+
projectAdmin: '项目管理员',
21+
partialManagePermissions: '部分管理权限',
22+
noManagePermissions: '无管理权限'
1623
},
1724
allPermission: 'ALL: 拥有对所有数据源的全部操作权限',
1825
actions: {
19-
removeMember: '移除'
26+
removeMember: '移除',
27+
manageMemberGroup: '管理成员组'
2028
}
2129
},
2230
addMember: {
@@ -30,13 +38,17 @@ export default {
3038
memberForm: {
3139
username: '用户名称',
3240
usernameTips: '需要先在<0>系统设置-用户中心</0>处新增用户',
33-
isProjectAdmin: '项目管理权限'
41+
isProjectAdmin: '是否为项目管理员',
42+
projectAdminTips: '项目管理员默认拥有项目下所有管理权限',
43+
managerSetter: '管理员设置',
44+
projectManagementPermission: '项目管理权限',
45+
projectOpPermission: '项目操作权限',
46+
addProjectOpPermission: '添加项目操作权限'
3447
},
3548

3649
roleSelector: {
37-
role: '平台角色',
38-
opRange: '操作范围',
39-
addRoleAndOpRange: '添加平台角色与操作范围'
50+
role: '项目角色',
51+
opRange: '操作范围'
4052
},
4153

4254
memberGroupList: {
@@ -47,8 +59,8 @@ export default {
4759
columns: {
4860
userGroupName: '成员组名',
4961
users: '用户名',
50-
opRanges: '当前项目权限',
51-
opRangeTips: '格式 角色: [操作范围11,操作范围2 ...]',
62+
opRanges: '当前项目操作权限',
63+
opRangeTips: '格式:数据源+角色',
5264
isProjectAdmin: '项目管理员'
5365
},
5466
allPermission: 'ALL: 拥有对所有数据源的全部操作权限'
@@ -64,5 +76,13 @@ export default {
6476
updateMemberGroup: {
6577
modalTitle: '更新成员组',
6678
successTips: '更新成员组{{name}}成功'
79+
},
80+
manageMemberGroup: {
81+
modalTitle: '管理成员组',
82+
editPermissions: '编辑权限',
83+
exitGroup: '退出组',
84+
exitGroupConfirmTitle: '确定要退出成员组"{{groupName}}"吗?',
85+
exitGroupSuccess: '已退出成员组: {{name}}',
86+
emptyGroup: '暂无成员组'
6787
}
6888
};

packages/base/src/locale/zh-CN/dmsUserCenter.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,11 @@ export default {
7878
},
7979
roleForm: {
8080
name: '角色名',
81+
nameAlert: '当前基于"{{name}}"角色进行克隆,请修改角色名称',
8182
desc: '描述',
8283
opPermissions: '操作权限',
83-
isDisabled: '是否禁用'
84+
isDisabled: '是否禁用',
85+
viewAll: '查看全部'
8486
},
8587
createRole: {
8688
button: '添加角色',
@@ -98,12 +100,18 @@ export default {
98100
deleting: '正在删除角色 "{{name}}"...',
99101
deleteSuccessTips: '删除角色 "{{name}}" 成功'
100102
},
103+
104+
cloneRole: {
105+
modalTitle: '克隆角色',
106+
createSuccessTips: '克隆角色 "{{name}}" 成功'
107+
},
101108
opPermissionList: {
102109
title: '操作权限列表',
103110
columns: {
104-
name: '操作权限名称',
105-
range: '操作范围粒度',
106-
desc: '描述'
111+
name: '权限点',
112+
range: '权限作用范围',
113+
desc: '描述',
114+
module: '功能模块'
107115
},
108116
rangeTypeDictionary: {
109117
global: '全局',

packages/base/src/page/CloudBeaver/List/index.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ describe('test base/CloudBeaver/List', () => {
5858
permission: {
5959
moduleFeatureSupport: false,
6060
userOperationPermissions: {
61-
is_admin: true,
61+
is_admin: false,
6262
op_permission_list: []
6363
}
6464
}

packages/base/src/page/DataSource/components/List/index.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ describe('page/DataSource/DataSourceList', () => {
5555
},
5656
permission: {
5757
moduleFeatureSupport: { sqlOptimization: false },
58-
userOperationPermissions: { is_admin: true, op_permission_list: [] }
58+
userOperationPermissions: { is_admin: false, op_permission_list: [] }
5959
}
6060
},
6161
routerProps: {

packages/base/src/page/Member/Common/__tests__/__snapshots__/renderRolesInfo.test.tsx.snap

Lines changed: 0 additions & 39 deletions
This file was deleted.

packages/base/src/page/Member/Common/__tests__/renderRolesInfo.test.tsx

Lines changed: 0 additions & 27 deletions
This file was deleted.

0 commit comments

Comments
 (0)