mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-05 16:57:51 +08:00
Refactored user functions to use refrences rather than values
This commit is contained in:
@@ -81,20 +81,20 @@ func GetUsers() ([]models.ReturnUser, error) {
|
||||
}
|
||||
|
||||
// CreateUser - creates a user
|
||||
func CreateUser(user models.User) (models.User, error) {
|
||||
func CreateUser(user *models.User) error {
|
||||
// check if user exists
|
||||
if _, err := GetUser(user.UserName); err == nil {
|
||||
return models.User{}, errors.New("user exists")
|
||||
return errors.New("user exists")
|
||||
}
|
||||
var err = ValidateUser(user)
|
||||
if err != nil {
|
||||
return models.User{}, err
|
||||
return err
|
||||
}
|
||||
|
||||
// encrypt that password so we never see it again
|
||||
hash, err := bcrypt.GenerateFromPassword([]byte(user.Password), 5)
|
||||
if err != nil {
|
||||
return user, err
|
||||
return err
|
||||
}
|
||||
// set password to encrypted password
|
||||
user.Password = string(hash)
|
||||
@@ -102,19 +102,19 @@ func CreateUser(user models.User) (models.User, error) {
|
||||
tokenString, _ := CreateProUserJWT(user.UserName, user.Networks, user.Groups, user.IsAdmin)
|
||||
if tokenString == "" {
|
||||
// logic.ReturnErrorResponse(w, r, errorResponse)
|
||||
return user, err
|
||||
return err
|
||||
}
|
||||
|
||||
SetUserDefaults(&user)
|
||||
SetUserDefaults(user)
|
||||
|
||||
// connect db
|
||||
data, err := json.Marshal(&user)
|
||||
data, err := json.Marshal(user)
|
||||
if err != nil {
|
||||
return user, err
|
||||
return err
|
||||
}
|
||||
err = database.Insert(user.UserName, string(data), database.USERS_TABLE_NAME)
|
||||
if err != nil {
|
||||
return user, err
|
||||
return err
|
||||
}
|
||||
|
||||
// == PRO == Add user to every network as network user ==
|
||||
@@ -153,17 +153,17 @@ func CreateUser(user models.User) (models.User, error) {
|
||||
}
|
||||
// == END PRO ==
|
||||
|
||||
return user, nil
|
||||
return nil
|
||||
}
|
||||
|
||||
// CreateAdmin - creates an admin user
|
||||
func CreateAdmin(admin models.User) (models.User, error) {
|
||||
func CreateAdmin(admin *models.User) error {
|
||||
hasadmin, err := HasAdmin()
|
||||
if err != nil {
|
||||
return models.User{}, err
|
||||
return err
|
||||
}
|
||||
if hasadmin {
|
||||
return models.User{}, errors.New("admin user already exists")
|
||||
return errors.New("admin user already exists")
|
||||
}
|
||||
admin.IsAdmin = true
|
||||
return CreateUser(admin)
|
||||
@@ -242,22 +242,24 @@ func UpdateUserNetworks(newNetworks, newGroups []string, isadmin bool, currentUs
|
||||
currentUser.Networks = newNetworks
|
||||
}
|
||||
|
||||
_, err = UpdateUser(models.User{
|
||||
userChange := models.User{
|
||||
UserName: currentUser.UserName,
|
||||
Networks: currentUser.Networks,
|
||||
IsAdmin: currentUser.IsAdmin,
|
||||
Password: "",
|
||||
Groups: currentUser.Groups,
|
||||
}, returnedUser)
|
||||
}
|
||||
|
||||
_, err = UpdateUser(&userChange, returnedUser)
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// UpdateUser - updates a given user
|
||||
func UpdateUser(userchange models.User, user models.User) (models.User, error) {
|
||||
func UpdateUser(userchange, user *models.User) (*models.User, error) {
|
||||
// check if user exists
|
||||
if _, err := GetUser(user.UserName); err != nil {
|
||||
return models.User{}, err
|
||||
return &models.User{}, err
|
||||
}
|
||||
|
||||
queryUser := user.UserName
|
||||
@@ -290,25 +292,25 @@ func UpdateUser(userchange models.User, user models.User) (models.User, error) {
|
||||
|
||||
err := ValidateUser(user)
|
||||
if err != nil {
|
||||
return models.User{}, err
|
||||
return &models.User{}, err
|
||||
}
|
||||
|
||||
if err = database.DeleteRecord(database.USERS_TABLE_NAME, queryUser); err != nil {
|
||||
return models.User{}, err
|
||||
return &models.User{}, err
|
||||
}
|
||||
data, err := json.Marshal(&user)
|
||||
if err != nil {
|
||||
return models.User{}, err
|
||||
return &models.User{}, err
|
||||
}
|
||||
if err = database.Insert(user.UserName, string(data), database.USERS_TABLE_NAME); err != nil {
|
||||
return models.User{}, err
|
||||
return &models.User{}, err
|
||||
}
|
||||
logger.Log(1, "updated user", queryUser)
|
||||
return user, nil
|
||||
}
|
||||
|
||||
// ValidateUser - validates a user model
|
||||
func ValidateUser(user models.User) error {
|
||||
func ValidateUser(user *models.User) error {
|
||||
|
||||
v := validator.New()
|
||||
_ = v.RegisterValidation("in_charset", func(fl validator.FieldLevel) bool {
|
||||
|
Reference in New Issue
Block a user