Branding and templates: per-domain, tenant and server logos, /logo, operator calendar email templates and RSVP page (BT-1 to BT-26)
Logos resolve domain, then tenant, then server-wide, then the built-in, with subdomains finding their domain. GET /logo serves a data-URL image, redirects to a URL logo without fetching it, sandboxes SVG, and answers 404 when no custom logo applies. Emails embed the first PNG, JPEG or GIF logo. Logo and template writes are checked; stored templates are read at send time, always escaped, and fall back to the built-in with a build warning when they don't parse. The RSVP page is served byte for byte with a CSP and no-referrer. The sign-in and RSVP pages load the logo through an image element. MT-22's session logo follows the chain to the server-wide logo. Acceptance tests 1 to 17; test 18 written as the ignored branding_compat.
This commit is contained in:
@@ -25,6 +25,7 @@ mail-builder = { version = "1.0" }
|
||||
mail-auth = { version = "0.13", features = ["generate", "arc"] }
|
||||
tokio = { version = "1.53", features = ["rt"] }
|
||||
hyper = { version = "1.11.1", features = ["server", "http1", "http2"] }
|
||||
inbuxa-features = { path = "../features" }
|
||||
hyper-util = { version = "0.1.20", features = ["tokio"] }
|
||||
http-body-util = "0.1.5"
|
||||
async-stream = "0.3.6"
|
||||
|
||||
Reference in New Issue
Block a user