summaryrefslogtreecommitdiff
path: root/internal/web/customcss.go
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2023-12-27 11:23:52 +0100
committerLibravatar GitHub <noreply@github.com>2023-12-27 11:23:52 +0100
commit0ff52b71f2c0e970b1f0d43793c019bbed93e112 (patch)
treeeff120472b4b6f837121536ada03f530d213b13e /internal/web/customcss.go
parent[bugfix] :innocent: (#2476) (diff)
downloadgotosocial-0ff52b71f2c0e970b1f0d43793c019bbed93e112.tar.xz
[chore] Refactor HTML templates and CSS (#2480)
* [chore] Refactor HTML templates and CSS * eslint * ignore "Local" * rss tests * fiddle with OG just a tiny bit * dick around with polls a bit more so SR stops saying "clickable" * remove break * oh lord * don't lazy load avatar * fix ogmeta tests * clean up some cruft * catch remaining calls to c.HTML * fix error rendering + stack overflow in tag * allow templating attributes * fix indent * set aria-hidden on status complementary content, since it's already present in the label anyway * tidy up templating calls a little * try to make styling a bit more consistent + readable * fix up some remaining CSS issues * fix up reports
Diffstat (limited to 'internal/web/customcss.go')
-rw-r--r--internal/web/customcss.go30
1 files changed, 13 insertions, 17 deletions
diff --git a/internal/web/customcss.go b/internal/web/customcss.go
index ef57e0033..b23ebce8e 100644
--- a/internal/web/customcss.go
+++ b/internal/web/customcss.go
@@ -18,9 +18,7 @@
package web
import (
- "errors"
"net/http"
- "strings"
"github.com/gin-gonic/gin"
apiutil "github.com/superseriousbusiness/gotosocial/internal/api/util"
@@ -31,31 +29,29 @@ import (
const textCSSUTF8 = string(apiutil.TextCSS + "; charset=utf-8")
func (m *Module) customCSSGETHandler(c *gin.Context) {
- if !config.GetAccountsAllowCustomCSS() {
- err := errors.New("accounts-allow-custom-css is not enabled on this instance")
- apiutil.WebErrorHandler(c, gtserror.NewErrorNotFound(err), m.processor.InstanceGetV1)
- return
- }
-
if _, err := apiutil.NegotiateAccept(c, apiutil.TextCSS); err != nil {
apiutil.WebErrorHandler(c, gtserror.NewErrorNotAcceptable(err, err.Error()), m.processor.InstanceGetV1)
return
}
- // usernames on our instance will always be lowercase
- username := strings.ToLower(c.Param(usernameKey))
- if username == "" {
- err := errors.New("no account username specified")
- apiutil.WebErrorHandler(c, gtserror.NewErrorBadRequest(err, err.Error()), m.processor.InstanceGetV1)
- return
- }
-
- customCSS, errWithCode := m.processor.Account().GetCustomCSSForUsername(c.Request.Context(), username)
+ targetUsername, errWithCode := apiutil.ParseWebUsername(c.Param(apiutil.WebUsernameKey))
if errWithCode != nil {
apiutil.WebErrorHandler(c, errWithCode, m.processor.InstanceGetV1)
return
}
+ // Retrieve customCSS if enabled on the instance.
+ // Else use an empty string, to help with caching
+ // when custom CSS gets toggled on or off.
+ var customCSS string
+ if config.GetAccountsAllowCustomCSS() {
+ customCSS, errWithCode = m.processor.Account().GetCustomCSSForUsername(c.Request.Context(), targetUsername)
+ if errWithCode != nil {
+ apiutil.WebErrorHandler(c, errWithCode, m.processor.InstanceGetV1)
+ return
+ }
+ }
+
c.Header(cacheControlHeader, cacheControlNoCache)
c.Data(http.StatusOK, textCSSUTF8, []byte(customCSS))
}