浏览代码

add server telemetry and hasSuperAdmin to cache

Max Ma 1 年之前
父节点
当前提交
3551d45721
共有 2 个文件被更改,包括 20 次插入2 次删除
  1. 9 0
      logic/auth.go
  2. 11 2
      logic/telemetry.go

+ 9 - 0
logic/auth.go

@@ -20,9 +20,17 @@ const (
 	auth_key = "netmaker_auth"
 	auth_key = "netmaker_auth"
 )
 )
 
 
+var (
+	superUser = models.User{}
+)
+
 // HasSuperAdmin - checks if server has an superadmin/owner
 // HasSuperAdmin - checks if server has an superadmin/owner
 func HasSuperAdmin() (bool, error) {
 func HasSuperAdmin() (bool, error) {
 
 
+	if superUser.IsSuperAdmin {
+		return true, nil
+	}
+
 	collection, err := database.FetchRecords(database.USERS_TABLE_NAME)
 	collection, err := database.FetchRecords(database.USERS_TABLE_NAME)
 	if err != nil {
 	if err != nil {
 		if database.IsEmptyRecord(err) {
 		if database.IsEmptyRecord(err) {
@@ -38,6 +46,7 @@ func HasSuperAdmin() (bool, error) {
 			continue
 			continue
 		}
 		}
 		if user.IsSuperAdmin {
 		if user.IsSuperAdmin {
+			superUser = user
 			return true, nil
 			return true, nil
 		}
 		}
 	}
 	}

+ 11 - 2
logic/telemetry.go

@@ -13,8 +13,11 @@ import (
 	"golang.org/x/exp/slog"
 	"golang.org/x/exp/slog"
 )
 )
 
 
-// flags to keep for telemetry
-var isFreeTier bool
+var (
+	// flags to keep for telemetry
+	isFreeTier      bool
+	telServerRecord = models.Telemetry{}
+)
 
 
 // posthog_pub_key - Key for sending data to PostHog
 // posthog_pub_key - Key for sending data to PostHog
 const posthog_pub_key = "phc_1vEXhPOA1P7HP5jP2dVU9xDTUqXHAelmtravyZ1vvES"
 const posthog_pub_key = "phc_1vEXhPOA1P7HP5jP2dVU9xDTUqXHAelmtravyZ1vvES"
@@ -152,6 +155,9 @@ func getClientCount(nodes []models.Node) clientCount {
 
 
 // FetchTelemetryRecord - get the existing UUID and Timestamp from the DB
 // FetchTelemetryRecord - get the existing UUID and Timestamp from the DB
 func FetchTelemetryRecord() (models.Telemetry, error) {
 func FetchTelemetryRecord() (models.Telemetry, error) {
+	if telServerRecord.TrafficKeyPub != nil {
+		return telServerRecord, nil
+	}
 	var rawData string
 	var rawData string
 	var telObj models.Telemetry
 	var telObj models.Telemetry
 	var err error
 	var err error
@@ -160,6 +166,9 @@ func FetchTelemetryRecord() (models.Telemetry, error) {
 		return telObj, err
 		return telObj, err
 	}
 	}
 	err = json.Unmarshal([]byte(rawData), &telObj)
 	err = json.Unmarshal([]byte(rawData), &telObj)
+	if err == nil {
+		telServerRecord = telObj
+	}
 	return telObj, err
 	return telObj, err
 }
 }