mirror of
https://github.com/goharbor/harbor.git
synced 2025-03-02 10:41:59 +01:00
modified code according to the comments
This commit is contained in:
parent
7fea8c55dd
commit
a5d8783b76
@ -26,11 +26,9 @@ func AddProjectMember(projectID int64, userID int, role int) error {
|
||||
|
||||
sql := "insert into project_member (project_id, user_id , role) values (?, ?, ?)"
|
||||
|
||||
if _, err := o.Raw(sql, projectID, userID, role).Exec(); err != nil {
|
||||
return err
|
||||
}
|
||||
_, err := o.Raw(sql, projectID, userID, role).Exec()
|
||||
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
|
||||
// UpdateProjectMember updates the record in table project_member
|
||||
@ -39,11 +37,9 @@ func UpdateProjectMember(projectID int64, userID int, role int) error {
|
||||
|
||||
sql := "update project_member set role = ? where project_id = ? and user_id = ?"
|
||||
|
||||
if _, err := o.Raw(sql, role, projectID, userID).Exec(); err != nil {
|
||||
return err
|
||||
}
|
||||
_, err := o.Raw(sql, role, projectID, userID).Exec()
|
||||
|
||||
return nil
|
||||
return err
|
||||
}
|
||||
|
||||
// DeleteProjectMember delete the record from table project_member
|
||||
|
18
dao/role.go
18
dao/role.go
@ -16,6 +16,8 @@
|
||||
package dao
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/astaxie/beego/orm"
|
||||
"github.com/vmware/harbor/models"
|
||||
)
|
||||
@ -43,10 +45,20 @@ func GetUserProjectRoles(userID int, projectID int64) ([]models.Role, error) {
|
||||
return roleList, nil
|
||||
}
|
||||
|
||||
// IsAdminRole returns whether the user is admin.
|
||||
func IsAdminRole(userID int) (bool, error) {
|
||||
// IsAdminRole returns whether the user is admin.
|
||||
func IsAdminRole(userIDOrUsername interface{}) (bool, error) {
|
||||
u := models.User{}
|
||||
|
||||
user, err := GetUser(models.User{UserID: userID})
|
||||
switch v := userIDOrUsername.(type) {
|
||||
case int:
|
||||
u.UserID = v
|
||||
case string:
|
||||
u.Username = v
|
||||
default:
|
||||
return false, fmt.Errorf("invalid parameter, only int and string are supported: %v", userIDOrUsername)
|
||||
}
|
||||
|
||||
user, err := GetUser(u)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
66
dao/user.go
66
dao/user.go
@ -84,6 +84,8 @@ func LoginByDb(auth models.AuthModel) (*models.User, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
user.Password = "" //do not return the password
|
||||
|
||||
return &user, nil
|
||||
}
|
||||
|
||||
@ -111,22 +113,9 @@ func ListUsers(query models.User) ([]models.User, error) {
|
||||
func ToggleUserAdminRole(u models.User) error {
|
||||
o := orm.NewOrm()
|
||||
|
||||
var user models.User
|
||||
err := o.Raw(`select sysadmin_flag from user where user_id = ?`, u.UserID).QueryRow(&user)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
sql := `update user set sysadmin_flag =not sysadmin_flag where user_id = ?`
|
||||
|
||||
var sysAdminFlag int
|
||||
if user.HasAdminRole == 0 {
|
||||
sysAdminFlag = 1
|
||||
} else {
|
||||
sysAdminFlag = 0
|
||||
}
|
||||
|
||||
sql := `update user set sysadmin_flag = ? where user_id = ?`
|
||||
|
||||
r, err := o.Raw(sql, sysAdminFlag, u.UserID).Exec()
|
||||
r, err := o.Raw(sql, u.UserID).Exec()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -140,45 +129,32 @@ func ToggleUserAdminRole(u models.User) error {
|
||||
|
||||
// ChangeUserPassword ...
|
||||
func ChangeUserPassword(u models.User, oldPassword ...string) (err error) {
|
||||
if len(oldPassword) > 1 {
|
||||
return errors.New("Wrong numbers of params.")
|
||||
}
|
||||
|
||||
o := orm.NewOrm()
|
||||
|
||||
var r sql.Result
|
||||
if len(oldPassword) == 0 {
|
||||
//In some cases, it may no need to check old password, just as Linux change password policies.
|
||||
r, err = o.Raw(`update user set password=?, salt=? where user_id=?`, utils.Encrypt(u.Password, u.Salt), u.Salt, u.UserID).Exec()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
c, err := r.RowsAffected()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if c == 0 {
|
||||
return errors.New("No record has been modified, change password failed.")
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
if len(oldPassword) == 1 {
|
||||
} else {
|
||||
r, err = o.Raw(`update user set password=?, salt=? where user_id=? and password = ?`, utils.Encrypt(u.Password, u.Salt), u.Salt, u.UserID, utils.Encrypt(oldPassword[0], u.Salt)).Exec()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
c, err := r.RowsAffected()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if c == 0 {
|
||||
return errors.New("No record has been modified, change password failed.")
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
return errors.New("Wrong numbers of params.")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
c, err := r.RowsAffected()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if c == 0 {
|
||||
return errors.New("No record has been modified, change password failed.")
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// ResetUserPassword ...
|
||||
|
Loading…
Reference in New Issue
Block a user