fix(auth): avoid "Error: Option 'redirectBareDomain' doesn't exist" on new installations

fixes #1667
This commit is contained in:
Panagiotis Papadopoulos 2025-04-10 09:56:54 +02:00
parent 9ab48839a7
commit a819166ae5

View File

@ -39,7 +39,9 @@ function checkAuth(req: Request, res: Response, next: NextFunction) {
res.redirect('login');
return;
} else if (!req.session.loggedIn && !noAuthentication) {
const redirectToShare = options.getOptionBool("redirectBareDomain");
const redirectToShare = hasRedirectBareDomain();
if (redirectToShare) {
// Check if any note has the #shareRoot label
const shareRootNotes = attributes.getNotesWithLabel("shareRoot");
@ -54,6 +56,18 @@ function checkAuth(req: Request, res: Response, next: NextFunction) {
}
}
// avoid receiving an error, on a new installation, when the DB is not initialized yet
// => getOptionBool uses getOption, which throws an error if the option name is not found
// TriliumNextTODO: potentially refactor getOptionBool instead
function hasRedirectBareDomain() {
try {
return options.getOptionBool("redirectBareDomain");
} catch(e) {
return false;
}
}
// for electron things which need network stuff
// currently, we're doing that for file upload because handling form data seems to be difficult
function checkApiAuthOrElectron(req: Request, res: Response, next: NextFunction) {