diff --git a/src/services/auth.ts b/src/services/auth.ts index 7d55c3d32..38eb19823 100644 --- a/src/services/auth.ts +++ b/src/services/auth.ts @@ -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) {