From 18d9b44d767c344872c91bd8dfc0eb02449023f6 Mon Sep 17 00:00:00 2001 From: Jo Vandeginste Date: Thu, 13 Jun 2024 11:19:45 +0200 Subject: [PATCH] Fix disabling options in profile settings Unchecking options like API access was not working, because unchecked checkboxes are not sent as form values. This change first unsets all booleans, which may or may not be enabled again through the form. Signed-off-by: Jo Vandeginste --- pkg/app/self_handlers.go | 2 ++ pkg/database/profile.go | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/pkg/app/self_handlers.go b/pkg/app/self_handlers.go index 57fdbec9..afa9acb6 100644 --- a/pkg/app/self_handlers.go +++ b/pkg/app/self_handlers.go @@ -39,6 +39,8 @@ func (a *App) userProfileUpdateHandler(c echo.Context) error { u := a.getCurrentUser(c) p := &u.Profile + p.ResetBools() + if err := c.Bind(p); err != nil { return a.redirectWithError(c, a.echo.Reverse("user-profile"), err) } diff --git a/pkg/database/profile.go b/pkg/database/profile.go index 3639b95b..036073a6 100644 --- a/pkg/database/profile.go +++ b/pkg/database/profile.go @@ -68,6 +68,12 @@ func (u UserPreferredUnits) Speed() string { } } +func (p *Profile) ResetBools() { + p.PreferFullDate = false + p.APIActive = false + p.SocialsDisabled = false +} + func (p *Profile) Save(db *gorm.DB) error { return db.Save(p).Error }