From 1def6baf56ce09fc19965a0888c8c35bdfeaa9e5 Mon Sep 17 00:00:00 2001 From: runzexia Date: Thu, 25 Apr 2019 16:28:48 +0800 Subject: [PATCH] fix api --- pkg/models/devops/common.go | 18 ++++++++++++++++++ pkg/models/tenant/devops.go | 18 ++---------------- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/pkg/models/devops/common.go b/pkg/models/devops/common.go index 453531224..d0e03e775 100644 --- a/pkg/models/devops/common.go +++ b/pkg/models/devops/common.go @@ -313,3 +313,21 @@ func CheckProjectUserInRole(username, projectId string, roles []string) error { } return nil } + +func GetProjectUserRole(username, projectId string) (string ,error) { + if username == KS_ADMIN { + return ProjectOwner,nil + } + dbconn := devops_mysql.OpenDatabase() + membership := &DevOpsProjectMembership{} + err := dbconn.Select(DevOpsProjectMembershipColumns...). + From(DevOpsProjectMembershipTableName). + Where(db.And( + db.Eq(DevOpsProjectMembershipUsernameColumn, username), + db.Eq(DevOpsProjectMembershipProjectIdColumn, projectId))).LoadOne(membership) + if err != nil { + return "",err + } + + return membership.Role,nil +} diff --git a/pkg/models/tenant/devops.go b/pkg/models/tenant/devops.go index 85edf5540..dfa3f1bff 100644 --- a/pkg/models/tenant/devops.go +++ b/pkg/models/tenant/devops.go @@ -254,26 +254,12 @@ func CreateDevopsProject(username string, workspace string, req *devops.DevOpsPr } func GetUserDevopsSimpleRules(username, projectId string) ([]models.SimpleRule, error) { - err := devops.CheckProjectUserInRole(username, projectId, devops.AllRoleSlice) + role,err := devops.GetProjectUserRole(username,projectId) if err != nil { glog.Errorf("%+v", err) return nil, restful.NewError(http.StatusForbidden, err.Error()) } - dbconn := devops_mysql.OpenDatabase() - memberships := &devops.DevOpsProjectMembership{} - err = dbconn.Select(devops.DevOpsProjectMembershipColumns...). - From(devops.DevOpsProjectMembershipTableName). - Where(db.And( - db.Eq(devops.DevOpsProjectMembershipProjectIdColumn, projectId), - db.Eq(devops.DevOpsProjectMembershipUsernameColumn, username))). - LoadOne(&memberships) - if err != nil { - glog.Errorf("%+v", err) - - return nil, restful.NewError(http.StatusInternalServerError, err.Error()) - } - - return GetDevopsRoleSimpleRules(memberships.Role), nil + return GetDevopsRoleSimpleRules(role), nil } func GetDevopsRoleSimpleRules(role string) []models.SimpleRule {