send/server/state.js

54 lines
1.4 KiB
JavaScript
Raw Normal View History

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