Share report template functionality
This commit is contained in:
parent
e6ad0e239e
commit
4822a50d0b
35 changed files with 614 additions and 128 deletions
|
@ -2,29 +2,58 @@
|
|||
|
||||
const passport = require('./passport');
|
||||
const config = require('config');
|
||||
const permissions = require('./permissions');
|
||||
|
||||
function _getConfig(context) {
|
||||
function getAnonymousConfig(context) {
|
||||
return {
|
||||
authMethod: passport.authMethod,
|
||||
isAuthMethodLocal: passport.isAuthMethodLocal,
|
||||
externalPasswordResetLink: config.ldap.passwordresetlink,
|
||||
language: config.language || 'en',
|
||||
userId: context.user ? context.user.id : undefined
|
||||
isAuthenticated: !!context.user
|
||||
}
|
||||
}
|
||||
|
||||
function getAuthenticatedConfig(context) {
|
||||
const roles = {};
|
||||
for (const entityTypeId in config.roles) {
|
||||
const rolesPerEntityType = {};
|
||||
for (const roleId in config.roles[entityTypeId]) {
|
||||
const roleSpec = config.roles[entityTypeId][roleId];
|
||||
|
||||
rolesPerEntityType[roleId] = {
|
||||
name: roleSpec.name,
|
||||
description: roleSpec.description
|
||||
}
|
||||
}
|
||||
roles[entityTypeId] = rolesPerEntityType;
|
||||
}
|
||||
|
||||
|
||||
return {
|
||||
userId: context.user.id,
|
||||
roles
|
||||
}
|
||||
}
|
||||
|
||||
function registerRootRoute(router, entryPoint, title) {
|
||||
router.get('/*', passport.csrfProtection, (req, res) => {
|
||||
const mailtrainConfig = getAnonymousConfig(req.context);
|
||||
if (req.user) {
|
||||
Object.assign(mailtrainConfig, getAuthenticatedConfig(req.context));
|
||||
}
|
||||
|
||||
res.render('react-root', {
|
||||
title,
|
||||
reactEntryPoint: entryPoint,
|
||||
reactCsrfToken: req.csrfToken(),
|
||||
mailtrainConfig: JSON.stringify(_getConfig(req.context))
|
||||
mailtrainConfig: JSON.stringify(mailtrainConfig)
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
registerRootRoute
|
||||
registerRootRoute,
|
||||
getAuthenticatedConfig
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue