mailtrain/lib/client-helpers.js
Tomas Bures 9203b5cee7 Blacklist functionality
Some API improvements
2017-09-17 16:36:23 +02:00

50 lines
1.4 KiB
JavaScript

'use strict';
const passport = require('./passport');
const config = require('config');
const permissions = require('./permissions');
const forms = require('../models/forms');
const shares = require('../models/shares');
async function getAnonymousConfig(context) {
return {
authMethod: passport.authMethod,
isAuthMethodLocal: passport.isAuthMethodLocal,
externalPasswordResetLink: config.ldap.passwordresetlink,
language: config.language || 'en',
isAuthenticated: !!context.user
}
}
async function getAuthenticatedConfig(context) {
return {
defaultCustomFormValues: await forms.getDefaultCustomFormValues(),
user: {
id: context.user.id,
namespace: context.user.namespace
},
globalPermissions: shares.getGlobalPermissions(context)
}
}
function registerRootRoute(router, entryPoint, title) {
router.getAsync('/*', passport.csrfProtection, async (req, res) => {
const mailtrainConfig = await getAnonymousConfig(req.context);
if (req.user) {
Object.assign(mailtrainConfig, await getAuthenticatedConfig(req.context));
}
res.render('react-root', {
title,
reactEntryPoint: entryPoint,
reactCsrfToken: req.csrfToken(),
mailtrainConfig: JSON.stringify(mailtrainConfig)
});
});
}
module.exports = {
registerRootRoute,
getAuthenticatedConfig
};