|
|
const { SystemSettings } = require("../../models/systemSettings"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async function simpleSSOEnabled(_, response, next) { |
|
|
if (!("SIMPLE_SSO_ENABLED" in process.env)) { |
|
|
return response |
|
|
.status(403) |
|
|
.send( |
|
|
"Simple SSO is not enabled. It must be enabled to validate or issue temporary auth tokens." |
|
|
); |
|
|
} |
|
|
|
|
|
|
|
|
if (!("multiUserMode" in response.locals)) { |
|
|
const multiUserMode = await SystemSettings.isMultiUserMode(); |
|
|
response.locals.multiUserMode = multiUserMode; |
|
|
} |
|
|
|
|
|
if (!response.locals.multiUserMode) { |
|
|
return response |
|
|
.status(403) |
|
|
.send( |
|
|
"Multi-User mode is not enabled. It must be enabled to use Simple SSO." |
|
|
); |
|
|
} |
|
|
|
|
|
next(); |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function simpleSSOLoginDisabled() { |
|
|
return ( |
|
|
"SIMPLE_SSO_ENABLED" in process.env && "SIMPLE_SSO_NO_LOGIN" in process.env |
|
|
); |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async function simpleSSOLoginDisabledMiddleware(_, response, next) { |
|
|
if (!("multiUserMode" in response.locals)) { |
|
|
const multiUserMode = await SystemSettings.isMultiUserMode(); |
|
|
response.locals.multiUserMode = multiUserMode; |
|
|
} |
|
|
|
|
|
if (response.locals.multiUserMode && simpleSSOLoginDisabled()) { |
|
|
response.status(403).json({ |
|
|
success: false, |
|
|
error: "Login via credentials has been disabled by the administrator.", |
|
|
}); |
|
|
return; |
|
|
} |
|
|
next(); |
|
|
} |
|
|
|
|
|
module.exports = { |
|
|
simpleSSOEnabled, |
|
|
simpleSSOLoginDisabled, |
|
|
simpleSSOLoginDisabledMiddleware, |
|
|
}; |
|
|
|