Let an operator turn administration off
ADMINISTRATION=0 at launch removes in-app administration for everyone. The account's permissions are no longer sent to the browser, so the menu never appears, and the JMAP proxy refuses Stalwart registry methods other than the account's own (settings, password, app passwords, API keys, public keys, masked addresses). Hiding the menu alone would have left an administrator's browser console able to make every call the menu made. With administration on, the request body streams through untouched as before; only an installation that turns it off reads and checks the body, forwarding the parsed form so the server receives exactly what was inspected.
This commit is contained in:
@@ -295,6 +295,13 @@ export const config = {
|
||||
upstreamTimeout: int("UPSTREAM_TIMEOUT", 30_000),
|
||||
maxUploadBytes: int("MAX_UPLOAD_BYTES", 50 * 1024 * 1024),
|
||||
imageProxy: bool("IMAGE_PROXY", true),
|
||||
/*
|
||||
* Whether ihasmail offers administration to accounts whose Stalwart role
|
||||
* allows it. Off means off: no menu, no permissions sent to the browser, and
|
||||
* the JMAP proxy refuses registry methods beyond the account's own -- see
|
||||
* adminGate.ts. Stalwart's own interface is unaffected either way.
|
||||
*/
|
||||
administration: bool("ADMINISTRATION", true),
|
||||
cookieName: env("COOKIE_NAME", "ihm_session"),
|
||||
staticDir: process.env.STATIC_DIR ?? fileURLToPath(new URL("../../web/dist", import.meta.url)),
|
||||
loginRateLimit: int("LOGIN_RATE_LIMIT", 10),
|
||||
|
||||
Reference in New Issue
Block a user