updated logs, ensured admins could not be edited

This commit is contained in:
0xdcarns 2021-10-25 16:38:59 -04:00
parent 9f0f6ae9b5
commit 6891b52cee
3 changed files with 15 additions and 6 deletions

View file

@ -274,12 +274,12 @@ func updateUserNetworks(w http.ResponseWriter, r *http.Request) {
return return
} }
err = logic.UpdateUserNetworks(userchange.Networks, &user) err = logic.UpdateUserNetworks(userchange.Networks, userchange.IsAdmin, &user)
if err != nil { if err != nil {
returnErrorResponse(w, r, formatError(err, "badrequest")) returnErrorResponse(w, r, formatError(err, "badrequest"))
return return
} }
functions.PrintUserLog(username, "networks were updated", 1) functions.PrintUserLog(username, "status was updated", 1)
json.NewEncoder(w).Encode(user) json.NewEncoder(w).Encode(user)
} }

View file

@ -3,6 +3,7 @@ package logic
import ( import (
"encoding/json" "encoding/json"
"errors" "errors"
"fmt"
"github.com/go-playground/validator/v10" "github.com/go-playground/validator/v10"
"github.com/gravitl/netmaker/database" "github.com/gravitl/netmaker/database"
@ -153,12 +154,19 @@ func VerifyAuthRequest(authRequest models.UserAuthParams) (string, error) {
} }
// UpdateUserNetworks - updates the networks of a given user // UpdateUserNetworks - updates the networks of a given user
func UpdateUserNetworks(newNetworks []string, currentUser *models.User) error { func UpdateUserNetworks(newNetworks []string, isadmin bool, currentUser *models.User) error {
// check if user exists // check if user exists
if _, err := GetUser(currentUser.UserName); err != nil { if returnedUser, err := GetUser(currentUser.UserName); err != nil {
return err return err
} else if returnedUser.IsAdmin {
return fmt.Errorf("can not make changes to an admin user, attempted to change %s", returnedUser.UserName)
}
if isadmin {
currentUser.IsAdmin = true
currentUser.Networks = nil
} else {
currentUser.Networks = newNetworks
} }
currentUser.Networks = newNetworks
data, err := json.Marshal(currentUser) data, err := json.Marshal(currentUser)
if err != nil { if err != nil {

View file

@ -62,10 +62,11 @@ func setWGConfig(node models.Node, network string, peerupdate bool) error {
var iface string var iface string
iface = node.Interface iface = node.Interface
err = setServerPeers(iface, node.PersistentKeepalive, peers) err = setServerPeers(iface, node.PersistentKeepalive, peers)
Log("updated peers on server "+node.Name, 2)
} else { } else {
err = initWireguard(&node, privkey, peers, hasGateway, gateways) err = initWireguard(&node, privkey, peers, hasGateway, gateways)
Log("finished setting wg config on server "+node.Name, 3)
} }
Log("finished setting wg config on server "+node.Name, 1)
return err return err
} }