Fix preference management logic to avoid unnecessary DB calls.

This commit is contained in:
Kailash Nadh 2023-09-19 16:05:45 +05:30
parent 99c71a2a0a
commit a61a9d8c04

View file

@ -200,16 +200,6 @@ func handleSubscriptionPage(c echo.Context) error {
out.AllowWipe = app.constants.Privacy.AllowWipe out.AllowWipe = app.constants.Privacy.AllowWipe
out.AllowPreferences = app.constants.Privacy.AllowPreferences out.AllowPreferences = app.constants.Privacy.AllowPreferences
if app.constants.Privacy.AllowPreferences {
out.ShowManage = showManage
}
// Get the subscriber's lists.
subs, err := app.core.GetSubscriptions(0, subUUID, false)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, app.i18n.T("public.errorFetchingLists"))
}
s, err := app.core.GetSubscriber(0, subUUID, "") s, err := app.core.GetSubscriber(0, subUUID, "")
if err != nil { if err != nil {
return c.Render(http.StatusInternalServerError, tplMessage, return c.Render(http.StatusInternalServerError, tplMessage,
@ -222,8 +212,17 @@ func handleSubscriptionPage(c echo.Context) error {
makeMsgTpl(app.i18n.T("public.noSubTitle"), "", app.i18n.Ts("public.blocklisted"))) makeMsgTpl(app.i18n.T("public.noSubTitle"), "", app.i18n.Ts("public.blocklisted")))
} }
// Filter out unrelated private lists. // Only show preference management if it's enabled in settings.
if showManage { if app.constants.Privacy.AllowPreferences {
out.ShowManage = showManage
}
if out.ShowManage {
// Get the subscriber's lists.
subs, err := app.core.GetSubscriptions(0, subUUID, false)
if err != nil {
return echo.NewHTTPError(http.StatusBadRequest, app.i18n.T("public.errorFetchingLists"))
}
out.Subscriptions = make([]models.Subscription, 0, len(subs)) out.Subscriptions = make([]models.Subscription, 0, len(subs))
for _, s := range subs { for _, s := range subs {
if s.Type == models.ListTypePrivate { if s.Type == models.ListTypePrivate {