MCPcopy
hub / github.com/henrygd/beszel / InitializeUserSettings

Method InitializeUserSettings

internal/users/users.go:33–57  ·  view source on GitHub ↗

Initialize user settings with defaults if not set

(e *core.RecordEvent)

Source from the content-addressed store, hash-verified

31
32// Initialize user settings with defaults if not set
33func (um *UserManager) InitializeUserSettings(e *core.RecordEvent) error {
34 record := e.Record
35 // intialize settings with defaults (zero values can be ignored)
36 settings := struct {
37 ChartTime string `json:"chartTime"`
38 Emails []string `json:"emails"`
39 }{
40 ChartTime: "1h",
41 }
42 record.UnmarshalJSONField("settings", &settings)
43 // get user email from auth record
44 var user struct {
45 Email string `db:"email"`
46 }
47 err := e.App.DB().NewQuery("SELECT email FROM users WHERE id = {:id}").Bind(dbx.Params{
48 "id": record.GetString("user"),
49 }).One(&user)
50 if err != nil {
51 log.Println("failed to get user email", "err", err)
52 return err
53 }
54 settings.Emails = []string{user.Email}
55 record.Set("settings", settings)
56 return e.Next()
57}
58
59// Custom API endpoint to create the first user.
60// Mimics previous default behavior in PocketBase < 0.23.0 allowing user to be created through the Beszel UI.

Callers

nothing calls this directly

Calls 1

SetMethod · 0.45

Tested by

no test coverage detected