| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | package logicimport (	"encoding/json"	"github.com/gravitl/netmaker/database"	"github.com/gravitl/netmaker/servercfg")var (	// NetworksLimit - dummy var for community	NetworksLimit = 1000000000	// UsersLimit - dummy var for community	UsersLimit = 1000000000	// MachinesLimit - dummy var for community	MachinesLimit = 1000000000	// IngressesLimit - dummy var for community	IngressesLimit = 1000000000	// EgressesLimit - dummy var for community	EgressesLimit = 1000000000	// FreeTier - specifies if free tier	FreeTier = false)type serverData struct {	PrivateKey string `json:"privatekey,omitempty" bson:"privatekey,omitempty"`}// StorePrivKey - stores server client WireGuard privatekey if neededfunc StorePrivKey(serverID string, privateKey string) error {	var newData = serverData{}	var err error	var data []byte	newData.PrivateKey = privateKey	data, err = json.Marshal(&newData)	if err != nil {		return err	}	return database.Insert(serverID, string(data), database.SERVERCONF_TABLE_NAME)}// FetchPrivKey - fetches private keyfunc FetchPrivKey(serverID string) (string, error) {	var dbData string	var err error	var fetchedData = serverData{}	dbData, err = database.FetchRecord(database.SERVERCONF_TABLE_NAME, serverID)	if err != nil {		return "", err	}	err = json.Unmarshal([]byte(dbData), &fetchedData)	if err != nil {		return "", err	}	return fetchedData.PrivateKey, nil}// RemovePrivKey - removes a private keyfunc RemovePrivKey(serverID string) error {	return database.DeleteRecord(database.SERVERCONF_TABLE_NAME, serverID)}// FetchJWTSecret - fetches jwt secret from dbfunc FetchJWTSecret() (string, error) {	var dbData string	var err error	var fetchedData = serverData{}	dbData, err = database.FetchRecord(database.SERVERCONF_TABLE_NAME, "nm-jwt-secret")	if err != nil {		return "", err	}	err = json.Unmarshal([]byte(dbData), &fetchedData)	if err != nil {		return "", err	}	return fetchedData.PrivateKey, nil}// StoreJWTSecret - stores server jwt secret if neededfunc StoreJWTSecret(privateKey string) error {	var newData = serverData{}	var err error	var data []byte	newData.PrivateKey = privateKey	data, err = json.Marshal(&newData)	if err != nil {		return err	}	return database.Insert("nm-jwt-secret", string(data), database.SERVERCONF_TABLE_NAME)}// SetFreeTierLimits - sets limits for free tierfunc SetFreeTierLimits() {	FreeTier = true	UsersLimit = servercfg.GetUserLimit()	NetworksLimit = servercfg.GetNetworkLimit()	MachinesLimit = servercfg.GetMachinesLimit()	IngressesLimit = servercfg.GetIngressLimit()	EgressesLimit = servercfg.GetEgressLimit()}
 |