diff --git a/main.go b/main.go index 0dc6ad1..58b091b 100644 --- a/main.go +++ b/main.go @@ -372,10 +372,27 @@ func adminHandler(w http.ResponseWriter, r *http.Request) { userLang = settings.Company.Language } + // Fetch all users for TopUser dropdown + allUsers, _ := fetchAllUsers() + type UserOption struct { + Username string + DisplayName string + } + var allUserOptions []UserOption + for _, u := range allUsers { + profile := loadUserSettings(u.Username) + name := u.DisplayName + if profile.FirstName != "" { + name = profile.FirstName + " " + profile.LastName + } + allUserOptions = append(allUserOptions, UserOption{Username: u.Username, DisplayName: name}) + } + adminTmpl.Execute(w, map[string]interface{}{ "Settings": settings, "Domain": domain, "AdminEmail": adminEmail, + "AllUsers": allUserOptions, "AutheliaUp": autheliaUp, "CaddyUp": caddyUp, "LauncherUp": launcherUp, @@ -424,12 +441,29 @@ func settingsHandler(w http.ResponseWriter, r *http.Request) { lang = "en" } + // Fetch all users for manager dropdown + allUsers, _ := fetchAllUsers() + type UserOption struct { + Username string + DisplayName string + } + var allUserOptions []UserOption + for _, u := range allUsers { + profile := loadUserSettings(u.Username) + name := u.DisplayName + if profile.FirstName != "" { + name = profile.FirstName + " " + profile.LastName + } + allUserOptions = append(allUserOptions, UserOption{Username: u.Username, DisplayName: name}) + } + tmpl := template.Must(template.New("settings").Funcs(funcMap).Parse(settingsHTML)) w.Header().Set("Content-Type", "text/html; charset=utf-8") tmpl.Execute(w, map[string]interface{}{ "User": user, "IsAdmin": isAdmin, "UserSettings": us, + "AllUsers": allUserOptions, "Settings": settings, "Lang": lang, }) @@ -923,6 +957,7 @@ const settingsHTML = `
+
@@ -1323,7 +1358,7 @@ const adminHTML = `
-
+