1
0
mirror of https://github.com/goharbor/harbor synced 2025-04-22 19:10:40 +00:00

change code as the review reqired

This commit is contained in:
wemeya 2016-06-02 17:33:10 +08:00
parent d66a8f913e
commit 389a6037d5
6 changed files with 16 additions and 14 deletions

@ -199,7 +199,7 @@ func (p *ProjectAPI) List() {
p.ServeJSON() p.ServeJSON()
} }
// ToggleProjectPublic handles request POST /api/projects/:id/toggle_project_public // ToggleProjectPulic handles request PUT /api/projects/:id/publicity
func (p *ProjectAPI) ToggleProjectPublic() { func (p *ProjectAPI) ToggleProjectPublic() {
p.userID = p.ValidateUser() p.userID = p.ValidateUser()
var req projectReq var req projectReq

@ -280,7 +280,7 @@ func (ua *UserAPI) ChangePassword() {
} }
} }
// ToggleUserAdminRole handles Post api/users/{}/toggleadmin // ToggleUserAdminRole handles PUT api/users/{}/toggleadmin
func (ua *UserAPI) ToggleUserAdminRole() { func (ua *UserAPI) ToggleUserAdminRole() {
if !ua.IsAdmin { if !ua.IsAdmin {
log.Warningf("current user, id: %d does not have admin role, can not update other user's role", ua.currentUserID) log.Warningf("current user, id: %d does not have admin role, can not update other user's role", ua.currentUserID)
@ -288,12 +288,13 @@ func (ua *UserAPI) ToggleUserAdminRole() {
return return
} }
userQuery := models.User{UserID: ua.userID} userQuery := models.User{UserID: ua.userID}
if err := dao.ToggleUserAdminRole(userQuery); err != nil { ua.DecodeJSONReq(&userQuery)
if err := dao.ToggleUserAdminRole(userQuery.UserID,userQuery.HasAdminRole); err != nil {
log.Errorf("Error occurred in ToggleUserAdminRole: %v", err) log.Errorf("Error occurred in ToggleUserAdminRole: %v", err)
ua.CustomAbort(http.StatusInternalServerError, "Internal error.") ua.CustomAbort(http.StatusInternalServerError, "Internal error.")
} }
} }
// validate only validate when user register
func validate(user models.User) error { func validate(user models.User) error {
if isIllegalLength(user.Username, 0, 20) { if isIllegalLength(user.Username, 0, 20) {
@ -311,7 +312,7 @@ func validate(user models.User) error {
return nil return nil
} }
//commonValidate validates information when user register or change their profile //commonValidate validates email, realname, comment information when user register or change their profile
func commonValidate(user models.User) error { func commonValidate(user models.User) error {
if len(user.Email) > 0 { if len(user.Email) > 0 {

@ -112,7 +112,7 @@ func (l *Auth) Authenticate(m models.AuthModel) (*models.User, error) {
u.Password = "12345678AbC" u.Password = "12345678AbC"
u.Comment = "registered from LDAP." u.Comment = "registered from LDAP."
if u.Email == "" { if u.Email == "" {
u.Email = u.Username + "@vmware.com" u.Email = u.Username + "@placeholder.com"
} }
userID, err := dao.Register(u) userID, err := dao.Register(u)
if err != nil { if err != nil {

@ -17,7 +17,7 @@ package dao
import ( import (
"strings" "strings"
"github.com/astaxie/beego/orm"
"github.com/vmware/harbor/models" "github.com/vmware/harbor/models"
"github.com/vmware/harbor/utils/log" "github.com/vmware/harbor/utils/log"
) )

@ -109,12 +109,13 @@ func ListUsers(query models.User) ([]models.User, error) {
} }
// ToggleUserAdminRole gives a user admin role. // ToggleUserAdminRole gives a user admin role.
func ToggleUserAdminRole(u models.User) error { func ToggleUserAdminRole(userID, hasAdmin int) error {
o := GetOrmer() o := GetOrmer()
queryParams := make([]interface{}, 1)
sql := `update user set sysadmin_flag = not sysadmin_flag where user_id = ?` sql := `update user set sysadmin_flag = ? where user_id = ?`
queryParams = append(queryParams, hasAdmin)
r, err := o.Raw(sql, u.UserID).Exec() queryParams = append(queryParams, userID)
r, err := o.Raw(sql, queryParams).Exec()
if err != nil { if err != nil {
return err return err
} }

@ -55,12 +55,12 @@ func initRouters() {
beego.Router("/api/projects/:pid/members/?:mid", &api.ProjectMemberAPI{}) beego.Router("/api/projects/:pid/members/?:mid", &api.ProjectMemberAPI{})
beego.Router("/api/projects/", &api.ProjectAPI{}, "get:List") beego.Router("/api/projects/", &api.ProjectAPI{}, "get:List")
beego.Router("/api/projects/?:id", &api.ProjectAPI{}) beego.Router("/api/projects/?:id", &api.ProjectAPI{})
beego.Router("/api/projects/:id/publicity", &api.ProjectAPI{}, "post:ToggleProjectPublic") beego.Router("/api/projects/:id/publicity", &api.ProjectAPI{}, "put:ToggleProjectPublic")
beego.Router("/api/statistics", &api.StatisticAPI{}) beego.Router("/api/statistics", &api.StatisticAPI{})
beego.Router("/api/projects/:id/logs/filter", &api.ProjectAPI{}, "post:FilterAccessLog") beego.Router("/api/projects/:id/logs/filter", &api.ProjectAPI{}, "post:FilterAccessLog")
beego.Router("/api/users/?:id", &api.UserAPI{}) beego.Router("/api/users/?:id", &api.UserAPI{})
beego.Router("/api/users/:id/password", &api.UserAPI{}, "put:ChangePassword") beego.Router("/api/users/:id/password", &api.UserAPI{}, "put:ChangePassword")
beego.Router("/api/users/:id/sysadmin", &api.UserAPI{}, "post:ToggleUserAdminRole") beego.Router("/api/users/:id/sysadmin", &api.UserAPI{}, "put:ToggleUserAdminRole")
beego.Router("/api/repositories", &api.RepositoryAPI{}) beego.Router("/api/repositories", &api.RepositoryAPI{})
beego.Router("/api/repositories/tags", &api.RepositoryAPI{}, "get:GetTags") beego.Router("/api/repositories/tags", &api.RepositoryAPI{}, "get:GetTags")
beego.Router("/api/repositories/manifests", &api.RepositoryAPI{}, "get:GetManifests") beego.Router("/api/repositories/manifests", &api.RepositoryAPI{}, "get:GetManifests")