serverconf.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package logic
  2. import (
  3. "encoding/json"
  4. "time"
  5. "github.com/gravitl/netmaker/database"
  6. "github.com/gravitl/netmaker/servercfg"
  7. )
  8. var (
  9. // NetworksLimit - dummy var for community
  10. NetworksLimit = 1000000000
  11. // UsersLimit - dummy var for community
  12. UsersLimit = 1000000000
  13. // MachinesLimit - dummy var for community
  14. MachinesLimit = 1000000000
  15. // IngressesLimit - dummy var for community
  16. IngressesLimit = 1000000000
  17. // EgressesLimit - dummy var for community
  18. EgressesLimit = 1000000000
  19. // FreeTier - specifies if free tier
  20. FreeTier = false
  21. GetTrialEndDate = func() (time.Time, error) {
  22. return time.Time{}, nil
  23. }
  24. )
  25. type serverData struct {
  26. PrivateKey string `json:"privatekey,omitempty" bson:"privatekey,omitempty"`
  27. }
  28. // FetchJWTSecret - fetches jwt secret from db
  29. func FetchJWTSecret() (string, error) {
  30. var dbData string
  31. var err error
  32. var fetchedData = serverData{}
  33. dbData, err = database.FetchRecord(database.SERVERCONF_TABLE_NAME, "nm-jwt-secret")
  34. if err != nil {
  35. return "", err
  36. }
  37. err = json.Unmarshal([]byte(dbData), &fetchedData)
  38. if err != nil {
  39. return "", err
  40. }
  41. return fetchedData.PrivateKey, nil
  42. }
  43. // StoreJWTSecret - stores server jwt secret if needed
  44. func StoreJWTSecret(privateKey string) error {
  45. var newData = serverData{}
  46. var err error
  47. var data []byte
  48. newData.PrivateKey = privateKey
  49. data, err = json.Marshal(&newData)
  50. if err != nil {
  51. return err
  52. }
  53. return database.Insert("nm-jwt-secret", string(data), database.SERVERCONF_TABLE_NAME)
  54. }
  55. // SetFreeTierLimits - sets limits for free tier
  56. func SetFreeTierLimits() {
  57. FreeTier = true
  58. UsersLimit = servercfg.GetUserLimit()
  59. NetworksLimit = servercfg.GetNetworkLimit()
  60. MachinesLimit = servercfg.GetMachinesLimit()
  61. IngressesLimit = servercfg.GetIngressLimit()
  62. EgressesLimit = servercfg.GetEgressLimit()
  63. }