networkuser.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. package promodels
  2. // NetworkUserID - ID field for a network user
  3. type NetworkUserID string
  4. // NetworkUser - holds fields for a network user
  5. type NetworkUser struct {
  6. AccessLevel int `json:"accesslevel" bson:"accesslevel" yaml:"accesslevel"`
  7. ClientLimit int `json:"clientlimit" bson:"clientlimit" yaml:"clientlimit"`
  8. NodeLimit int `json:"nodelimit" bson:"nodelimit" yaml:"nodelimit"`
  9. ID NetworkUserID `json:"id" bson:"id" yaml:"id"`
  10. Clients []string `json:"clients" bson:"clients" yaml:"clients"`
  11. Nodes []string `json:"nodes" bson:"nodes" yaml:"nodes"`
  12. }
  13. // NetworkUserMap - map of network users
  14. type NetworkUserMap map[NetworkUserID]NetworkUser
  15. // NetworkUserMap.Delete - deletes a network user struct from a given map in memory
  16. func (N NetworkUserMap) Delete(ID NetworkUserID) {
  17. delete(N, ID)
  18. }
  19. // NetworkUserMap.Add - adds a network user struct to given network user map in memory
  20. func (N NetworkUserMap) Add(User *NetworkUser) {
  21. N[User.ID] = *User
  22. }
  23. // SetDefaults - adds the defaults to network user
  24. func (U *NetworkUser) SetDefaults() {
  25. if U.Clients == nil {
  26. U.Clients = []string{}
  27. }
  28. if U.Nodes == nil {
  29. U.Nodes = []string{}
  30. }
  31. }