1
0
Fork 0
mirror of https://github.com/miniflux/v2.git synced 2025-08-16 18:01:37 +00:00

refactor(ui): standardize user variable naming and avoid a SQL query when only userID is used

- Use `user` everywhere, instead of sometimes `loggedUser`
- Delay the instantiation of some variables: no need to perform SQL queries for
  nothing.
- Remove a SQL query getting the whole user struct when only user.ID is used.
This commit is contained in:
Julien Voisin 2025-08-12 04:48:36 +02:00 committed by GitHub
parent 50c5996280
commit 5d9d0b2652
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 50 additions and 57 deletions

View file

@ -18,7 +18,7 @@ import (
)
func (h *handler) updateSettings(w http.ResponseWriter, r *http.Request) {
loggedUser, err := h.store.UserByID(request.UserID(r))
user, err := h.store.UserByID(request.UserID(r))
if err != nil {
html.ServerError(w, r, err)
return
@ -30,7 +30,7 @@ func (h *handler) updateSettings(w http.ResponseWriter, r *http.Request) {
return
}
creds, err := h.store.WebAuthnCredentialsByUserID(loggedUser.ID)
creds, err := h.store.WebAuthnCredentialsByUserID(user.ID)
if err != nil {
html.ServerError(w, r, err)
return
@ -51,16 +51,16 @@ func (h *handler) updateSettings(w http.ResponseWriter, r *http.Request) {
view.Set("languages", locale.AvailableLanguages)
view.Set("timezones", timezones)
view.Set("menu", "settings")
view.Set("user", loggedUser)
view.Set("countUnread", h.store.CountUnreadEntries(loggedUser.ID))
view.Set("countErrorFeeds", h.store.CountUserFeedsWithErrors(loggedUser.ID))
view.Set("user", user)
view.Set("countUnread", h.store.CountUnreadEntries(user.ID))
view.Set("countErrorFeeds", h.store.CountUserFeedsWithErrors(user.ID))
view.Set("default_home_pages", model.HomePages())
view.Set("categories_sorting_options", model.CategoriesSortingOptions())
view.Set("countWebAuthnCerts", h.store.CountWebAuthnCredentialsByUserID(loggedUser.ID))
view.Set("countWebAuthnCerts", h.store.CountWebAuthnCredentialsByUserID(user.ID))
view.Set("webAuthnCerts", creds)
if validationErr := settingsForm.Validate(); validationErr != nil {
view.Set("errorMessage", validationErr.Translate(loggedUser.Language))
view.Set("errorMessage", validationErr.Translate(user.Language))
html.OK(w, r, view.Render("settings"))
return
}
@ -86,20 +86,20 @@ func (h *handler) updateSettings(w http.ResponseWriter, r *http.Request) {
ExternalFontHosts: model.OptionalString(settingsForm.ExternalFontHosts),
}
if validationErr := validator.ValidateUserModification(h.store, loggedUser.ID, userModificationRequest); validationErr != nil {
view.Set("errorMessage", validationErr.Translate(loggedUser.Language))
if validationErr := validator.ValidateUserModification(h.store, user.ID, userModificationRequest); validationErr != nil {
view.Set("errorMessage", validationErr.Translate(user.Language))
html.OK(w, r, view.Render("settings"))
return
}
err = h.store.UpdateUser(settingsForm.Merge(loggedUser))
err = h.store.UpdateUser(settingsForm.Merge(user))
if err != nil {
html.ServerError(w, r, err)
return
}
sess.SetLanguage(loggedUser.Language)
sess.SetTheme(loggedUser.Theme)
sess.SetLanguage(user.Language)
sess.SetTheme(user.Theme)
sess.NewFlashMessage(locale.NewPrinter(request.UserLanguage(r)).Printf("alert.prefs_saved"))
html.Redirect(w, r, route.Path(h.router, "settings"))
}