afeiszli 2 years ago
parent
commit
8a1ba674a7
5 changed files with 34 additions and 3 deletions
  1. 1 1
      controllers/networkusers.go
  2. 2 0
      logic/auth.go
  3. 2 2
      logic/pro/networks.go
  4. 7 0
      logic/users.go
  5. 22 0
      serverctl/serverctl.go

+ 1 - 1
controllers/networkusers.go

@@ -95,7 +95,7 @@ func getNetworkUserData(w http.ResponseWriter, r *http.Request) {
 				Clients:     netUser.Clients,
 				Clients:     netUser.Clients,
 			}
 			}
 			// check network level permissions
 			// check network level permissions
-			if doesNetworkAllow := pro.IsUserAllowed(&networks[i], networkUserName, u.Groups); doesNetworkAllow {
+			if doesNetworkAllow := pro.IsUserAllowed(&networks[i], networkUserName, u.Groups); doesNetworkAllow || netUser.AccessLevel == pro.NET_ADMIN {
 				netNodes, err := logic.GetNetworkNodes(netID)
 				netNodes, err := logic.GetNetworkNodes(netID)
 				if err != nil {
 				if err != nil {
 					logger.Log(0, "failed to retrieve nodes on network", netID, "for user", string(netUser.ID))
 					logger.Log(0, "failed to retrieve nodes on network", netID, "for user", string(netUser.ID))

+ 2 - 0
logic/auth.go

@@ -103,6 +103,8 @@ func CreateUser(user models.User) (models.User, error) {
 		return user, err
 		return user, err
 	}
 	}
 
 
+	SetUserDefaults(&user)
+
 	// connect db
 	// connect db
 	data, err := json.Marshal(&user)
 	data, err := json.Marshal(&user)
 	if err != nil {
 	if err != nil {

+ 2 - 2
logic/pro/networks.go

@@ -13,7 +13,7 @@ func AddProNetDefaults(network *models.Network) {
 			DefaultUserNodeLimit:   0,
 			DefaultUserNodeLimit:   0,
 			DefaultUserClientLimit: 0,
 			DefaultUserClientLimit: 0,
 			AllowedUsers:           []string{},
 			AllowedUsers:           []string{},
-			AllowedGroups:          []string{},
+			AllowedGroups:          []string{DEFAULT_ALLOWED_GROUPS},
 		}
 		}
 		network.ProSettings = &newProSettings
 		network.ProSettings = &newProSettings
 	}
 	}
@@ -21,7 +21,7 @@ func AddProNetDefaults(network *models.Network) {
 		network.ProSettings.AllowedUsers = []string{}
 		network.ProSettings.AllowedUsers = []string{}
 	}
 	}
 	if network.ProSettings.AllowedGroups == nil {
 	if network.ProSettings.AllowedGroups == nil {
-		network.ProSettings.AllowedGroups = []string{}
+		network.ProSettings.AllowedGroups = []string{DEFAULT_ALLOWED_GROUPS}
 	}
 	}
 }
 }
 
 

+ 7 - 0
logic/users.go

@@ -70,3 +70,10 @@ func InitializeNetUsers(network *models.Network) error {
 	}
 	}
 	return nil
 	return nil
 }
 }
+
+// SetUserDefaults - sets the defaults of a user to avoid empty fields
+func SetUserDefaults(user *models.User) {
+	if user.Groups == nil {
+		user.Groups = []string{pro.DEFAULT_ALLOWED_GROUPS}
+	}
+}

+ 22 - 0
serverctl/serverctl.go

@@ -94,6 +94,10 @@ func SetDefaults() error {
 		return err
 		return err
 	}
 	}
 
 
+	if err := setUserDefaults(); err != nil {
+		return err
+	}
+
 	return nil
 	return nil
 }
 }
 
 
@@ -135,3 +139,21 @@ func setNetworkDefaults() error {
 	}
 	}
 	return nil
 	return nil
 }
 }
+
+func setUserDefaults() error {
+	users, err := logic.GetUsers()
+	if err != nil && !database.IsEmptyRecord(err) {
+		return err
+	}
+	for _, user := range users {
+		updateUser, err := logic.GetUser(user.UserName)
+		if err != nil {
+			logger.Log(0, "could not update user", updateUser.UserName)
+		}
+		logic.SetUserDefaults(&updateUser)
+		if _, err = logic.UpdateUser(updateUser, updateUser); err != nil {
+			logger.Log(0, "could not update user", updateUser.UserName)
+		}
+	}
+	return nil
+}