hub: optimize System.HasUser check

This commit is contained in:
henrygd
2026-04-10 18:32:37 -04:00
parent b013f06956
commit e3ade3aeb8
2 changed files with 19 additions and 7 deletions

View File

@@ -8,7 +8,6 @@ import (
"hash/fnv"
"math/rand"
"net"
"slices"
"strings"
"sync/atomic"
"time"
@@ -363,12 +362,16 @@ func (sys *System) HasUser(app core.App, user *core.Record) bool {
if v, _ := utils.GetEnv("SHARE_ALL_SYSTEMS"); v == "true" {
return true
}
record, err := sys.getRecord(app)
if err != nil {
var recordData = struct {
Users string
}{}
err := app.DB().NewQuery("SELECT users FROM systems WHERE id={:id}").
Bind(dbx.Params{"id": sys.Id}).
One(&recordData)
if err != nil || recordData.Users == "" {
return false
}
users := record.GetStringSlice("users")
return slices.Contains(users, user.Id)
return strings.Contains(recordData.Users, user.Id)
}
// setDown marks a system as down in the database.