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
}
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) {
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 {