This commit is contained in:
QWQLwToo
2026-07-12 09:12:12 +08:00
committed by admin_gitea
parent d44200fde1
commit 5e4355700f
43 changed files with 2797 additions and 709 deletions
@@ -343,21 +343,39 @@ func (r *router) handleBranding(w http.ResponseWriter, req *http.Request) {
writeJSON(w, http.StatusOK, map[string]any{"ok": true, "branding": config.SafeBranding(r.effectiveBranding())})
case http.MethodPost:
var body struct {
SiteIconURL string `json:"siteIconUrl"`
SiteIconURLSnake string `json:"site_icon_url"`
DeveloperAvatarURL string `json:"developerAvatarUrl"`
DeveloperAvatarAlt string `json:"developer_avatar_url"`
DeveloperName string `json:"developerName"`
DeveloperNameSnake string `json:"developer_name"`
FeedbackEmail string `json:"feedbackEmail"`
FeedbackEmailSnake string `json:"feedback_email"`
SiteName string `json:"siteName"`
SiteNameSnake string `json:"site_name"`
PortalTitle string `json:"portalTitle"`
PortalTitleSnake string `json:"portal_title"`
PortalSubtitle string `json:"portalSubtitle"`
PortalSubtitleSnake string `json:"portal_subtitle"`
AdminTitle string `json:"adminTitle"`
AdminTitleSnake string `json:"admin_title"`
AdminSubtitle string `json:"adminSubtitle"`
AdminSubtitleSnake string `json:"admin_subtitle"`
SiteIconURL string `json:"siteIconUrl"`
SiteIconURLSnake string `json:"site_icon_url"`
LogoURL string `json:"logoUrl"`
LogoURLSnake string `json:"logo_url"`
DeveloperAvatarURL string `json:"developerAvatarUrl"`
DeveloperAvatarAlt string `json:"developer_avatar_url"`
DeveloperName string `json:"developerName"`
DeveloperNameSnake string `json:"developer_name"`
FeedbackEmail string `json:"feedbackEmail"`
FeedbackEmailSnake string `json:"feedback_email"`
}
if err := json.NewDecoder(req.Body).Decode(&body); err != nil {
writeError(w, http.StatusBadRequest, "INVALID_PAYLOAD", err)
return
}
next := config.BrandingConfig{
SiteName: firstNonEmpty(body.SiteName, body.SiteNameSnake),
PortalTitle: firstNonEmpty(body.PortalTitle, body.PortalTitleSnake),
PortalSubtitle: firstNonEmpty(body.PortalSubtitle, body.PortalSubtitleSnake),
AdminTitle: firstNonEmpty(body.AdminTitle, body.AdminTitleSnake),
AdminSubtitle: firstNonEmpty(body.AdminSubtitle, body.AdminSubtitleSnake),
SiteIconURL: firstNonEmpty(body.SiteIconURL, body.SiteIconURLSnake),
LogoURL: firstNonEmpty(body.LogoURL, body.LogoURLSnake),
DeveloperAvatarURL: firstNonEmpty(body.DeveloperAvatarURL, body.DeveloperAvatarAlt),
DeveloperName: firstNonEmpty(body.DeveloperName, body.DeveloperNameSnake),
FeedbackEmail: firstNonEmpty(body.FeedbackEmail, body.FeedbackEmailSnake),