Skip to content

Commit 0ca405b

Browse files
authored
Merge pull request #3071 from actiontech/fix_rule_template_permission
fix(permission): add project permission check in middleware
2 parents 7b3d641 + 826b155 commit 0ca405b

2 files changed

Lines changed: 20 additions & 1 deletion

File tree

sqle/api/middleware/permission.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ func OpProjectAllowed() echo.MiddlewareFunc {
4747
return echo.NewHTTPError(http.StatusForbidden)
4848
}
4949

50-
if up.CanOpProject() {
50+
if up.CanOpProject() || up.HasProjectPermission() {
5151
return next(c)
5252
}
5353

sqle/dms/permission.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,25 @@ func (p *UserPermission) GetOnePermission(opPermissionType v1.OpPermissionType)
106106
return nil
107107
}
108108

109+
func (p *UserPermission) HasProjectPermission() bool {
110+
for _, userOpPermission := range p.opPermissionItem {
111+
if userOpPermission.OpPermissionType == v1.OpPermissionTypeAuthDBServiceData ||
112+
userOpPermission.OpPermissionType == v1.OpPermissionManageProjectDataSource ||
113+
userOpPermission.OpPermissionType == v1.OpPermissionManageAuditRuleTemplate ||
114+
userOpPermission.OpPermissionType == v1.OpPermissionManageApprovalTemplate ||
115+
userOpPermission.OpPermissionType == v1.OpPermissionManageMember ||
116+
userOpPermission.OpPermissionType == v1.OpPermissionPushRule ||
117+
userOpPermission.OpPermissionType == v1.OpPermissionMangeAuditSQLWhiteList ||
118+
userOpPermission.OpPermissionType == v1.OpPermissionManageSQLMangeWhiteList ||
119+
userOpPermission.OpPermissionType == v1.OpPermissionManageRoleMange ||
120+
userOpPermission.OpPermissionType == v1.OpPermissionDesensitization ||
121+
userOpPermission.OpPermissionType == v1.OpPermissionTypeProjectAdmin {
122+
return true
123+
}
124+
}
125+
return false
126+
}
127+
109128
func (p *UserPermission) IsProjectAdmin() bool {
110129
for _, userOpPermission := range p.opPermissionItem {
111130
if userOpPermission.OpPermissionType == v1.OpPermissionTypeProjectAdmin {

0 commit comments

Comments
 (0)