This commit is contained in:
runzexia
2019-04-25 16:28:48 +08:00
parent 6c928258c6
commit 1def6baf56
2 changed files with 20 additions and 16 deletions

View File

@@ -313,3 +313,21 @@ func CheckProjectUserInRole(username, projectId string, roles []string) error {
} }
return nil 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
}

View File

@@ -254,26 +254,12 @@ func CreateDevopsProject(username string, workspace string, req *devops.DevOpsPr
} }
func GetUserDevopsSimpleRules(username, projectId string) ([]models.SimpleRule, error) { func GetUserDevopsSimpleRules(username, projectId string) ([]models.SimpleRule, error) {
err := devops.CheckProjectUserInRole(username, projectId, devops.AllRoleSlice) role,err := devops.GetProjectUserRole(username,projectId)
if err != nil { if err != nil {
glog.Errorf("%+v", err) glog.Errorf("%+v", err)
return nil, restful.NewError(http.StatusForbidden, err.Error()) return nil, restful.NewError(http.StatusForbidden, err.Error())
} }
dbconn := devops_mysql.OpenDatabase() return GetDevopsRoleSimpleRules(role), nil
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
} }
func GetDevopsRoleSimpleRules(role string) []models.SimpleRule { func GetDevopsRoleSimpleRules(role string) []models.SimpleRule {