2017-08-24 23:54:02 +02:00
|
|
|
|
const config = require('./config');
|
|
|
|
|
const layout = require('./layout');
|
2018-08-08 00:40:17 +02:00
|
|
|
|
const assets = require('../common/assets');
|
2018-11-20 15:50:59 +01:00
|
|
|
|
const getTranslator = require('./locale');
|
2018-11-20 21:07:47 +01:00
|
|
|
|
const { getFxaConfig } = require('./fxa');
|
2017-08-24 23:54:02 +02:00
|
|
|
|
|
2018-11-20 21:07:47 +01:00
|
|
|
|
module.exports = async function(req) {
|
2017-08-24 23:54:02 +02:00
|
|
|
|
const locale = req.language || 'en-US';
|
2018-11-20 21:07:47 +01:00
|
|
|
|
let authConfig = null;
|
2019-03-14 21:17:47 +01:00
|
|
|
|
let robots = 'none';
|
|
|
|
|
if (req.route && req.route.path === '/') {
|
|
|
|
|
robots = 'all';
|
|
|
|
|
}
|
2018-11-20 21:07:47 +01:00
|
|
|
|
if (config.fxa_client_id) {
|
|
|
|
|
try {
|
|
|
|
|
authConfig = await getFxaConfig();
|
|
|
|
|
authConfig.client_id = config.fxa_client_id;
|
2020-07-24 19:06:27 +02:00
|
|
|
|
authConfig.fxa_required = config.fxa_required;
|
2018-11-20 21:07:47 +01:00
|
|
|
|
} catch (e) {
|
2020-07-24 19:06:27 +02:00
|
|
|
|
if (config.auth_required) {
|
|
|
|
|
throw new Error('fxa_required is set but no config was found');
|
|
|
|
|
}
|
2018-11-20 21:07:47 +01:00
|
|
|
|
// continue without accounts
|
|
|
|
|
}
|
|
|
|
|
}
|
2019-04-26 22:30:33 +02:00
|
|
|
|
const prefs = {};
|
|
|
|
|
if (config.survey_url) {
|
|
|
|
|
prefs.surveyUrl = config.survey_url;
|
|
|
|
|
}
|
2017-08-24 23:54:02 +02:00
|
|
|
|
return {
|
2018-12-21 19:27:46 +01:00
|
|
|
|
archive: {
|
|
|
|
|
numFiles: 0
|
|
|
|
|
},
|
2017-08-24 23:54:02 +02:00
|
|
|
|
locale,
|
2018-09-19 18:01:19 +02:00
|
|
|
|
capabilities: { account: false },
|
2018-11-20 15:50:59 +01:00
|
|
|
|
translate: getTranslator(locale),
|
2017-08-24 23:54:02 +02:00
|
|
|
|
title: 'Firefox Send',
|
|
|
|
|
description:
|
|
|
|
|
'Encrypt and send files with a link that automatically expires to ensure your important documents don’t stay online forever.',
|
|
|
|
|
baseUrl: config.base_url,
|
|
|
|
|
ui: {},
|
|
|
|
|
storage: {
|
|
|
|
|
files: []
|
|
|
|
|
},
|
2017-09-14 21:15:08 +02:00
|
|
|
|
fileInfo: {},
|
2018-08-08 00:40:17 +02:00
|
|
|
|
cspNonce: req.cspNonce,
|
2018-09-14 17:00:33 +02:00
|
|
|
|
user: { avatar: assets.get('user.svg'), loggedIn: false },
|
2019-03-14 21:17:47 +01:00
|
|
|
|
robots,
|
2018-11-20 21:07:47 +01:00
|
|
|
|
authConfig,
|
2019-04-26 22:30:33 +02:00
|
|
|
|
prefs,
|
2017-08-24 23:54:02 +02:00
|
|
|
|
layout
|
|
|
|
|
};
|
|
|
|
|
};
|