diff options
author | 2024-03-25 18:32:24 +0100 | |
---|---|---|
committer | 2024-03-25 17:32:24 +0000 | |
commit | 8953f57d887c060c3b58f83c38d2010d27a45ef3 (patch) | |
tree | 05f8b1157a86afaa3ed0d6d0b87c9d0d37030362 /internal/processing/account/update.go | |
parent | [feature] Add healthcheck endpoints `/livez` and `/readyz` (#2783) (diff) | |
download | gotosocial-8953f57d887c060c3b58f83c38d2010d27a45ef3.tar.xz |
[feature] User-selectable preset CSS themes for accounts (#2777)
* [feature] User-selectable preset themes
* docs, more theme stuff
* lint, tests
* fix css name
* correct some little issues
* add another theme
* fix poll background
* okay last theme i swear
* make retrieval of apimodel themes more conventional
* preallocate stylesheet slices
Diffstat (limited to 'internal/processing/account/update.go')
-rw-r--r-- | internal/processing/account/update.go | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/internal/processing/account/update.go b/internal/processing/account/update.go index 7b5561138..076b6d7f4 100644 --- a/internal/processing/account/update.go +++ b/internal/processing/account/update.go @@ -256,6 +256,22 @@ func (p *Processor) Update(ctx context.Context, account *gtsmodel.Account, form } } + if form.Theme != nil { + theme := *form.Theme + if theme == "" { + // Empty is easy, just clear this. + account.Settings.Theme = "" + } else { + // Theme was provided, check + // against known available themes. + if _, ok := p.themes.ByFileName[theme]; !ok { + err := fmt.Errorf("theme %s not available on this instance, see /api/v1/accounts/themes for available themes", theme) + return nil, gtserror.NewErrorBadRequest(err, err.Error()) + } + account.Settings.Theme = theme + } + } + if form.CustomCSS != nil { customCSS := *form.CustomCSS if err := validate.CustomCSS(customCSS); err != nil { |