35 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| const passport = require('../lib/passport');
 | |
| const clientHelpers = require('../lib/client-helpers');
 | |
| const { getTrustedUrl } = require('../lib/urls');
 | |
| const { AppType } = require('../../shared/app');
 | |
| 
 | |
| const routerFactory = require('../lib/router-async');
 | |
| 
 | |
| async function getRouter(appType) {
 | |
|     const router = routerFactory.create();
 | |
| 
 | |
|     if (appType === AppType.TRUSTED) {
 | |
|         router.getAsync('/*', passport.csrfProtection, async (req, res) => {
 | |
|             const mailtrainConfig = await clientHelpers.getAnonymousConfig(req.context, appType);
 | |
|             if (req.user) {
 | |
|                 Object.assign(mailtrainConfig, await clientHelpers.getAuthenticatedConfig(req.context));
 | |
|             }
 | |
| 
 | |
|             res.render('root', {
 | |
|                 reactCsrfToken: req.csrfToken(),
 | |
|                 mailtrainConfig: JSON.stringify(mailtrainConfig),
 | |
|                 scriptFiles: [
 | |
|                     getTrustedUrl('client/root.js')
 | |
|                 ],
 | |
|                 publicPath: getTrustedUrl()
 | |
|             });
 | |
|         });
 | |
|     }
 | |
| 
 | |
|     return router;
 | |
| }
 | |
| 
 | |
| 
 | |
| module.exports.getRouter = getRouter;
 |