prevent Admin to switch off both http and https

Massimo Melina committed Mar 13, 2022 at 19:14 UTC 8bb3250904df5230df55c2d64fda7dda1ecee8c7
1 file changed +9 -3
server/src/adminApis.ts
+9 -3
@@ -18,9 +18,15 @@ export const adminApis: ApiHandlers = {
18 ...vfsApis,
19 ...accountsApis,
20
21 - async set_config({ values }) {
22 - if (values)
23 - await setConfig(values)
21 + async set_config({ values: v }) {
22 + if (v) {
23 + const st = getStatus()
24 + const noHttp = (v.port ?? getConfig('port')) < 0 || !st.httpSrv.listening
25 + const noHttps = (v.https_port ?? getConfig('https_port')) < 0 || !st.httpsSrv.listening
26 + if (noHttp && noHttps)
27 + return new ApiError(403, "You cannot switch off both http and https ports")
28 + await setConfig(v)
29 + }
30 return {}
31 },
32