refactor res.locals and settings

This commit is contained in:
lesion
2022-02-26 21:27:40 +01:00
parent 9e2ed063b6
commit cf3e1c69fa
20 changed files with 133 additions and 102 deletions

View File

@@ -62,43 +62,52 @@ module.exports = {
})
},
async setUserLocale (req, res, next) {
// select locale based on cookie? and accept-language header
acceptLanguage.languages(Object.keys(locales))
res.locals.acceptedLocale = acceptLanguage.get(req.headers['accept-language'])
dayjs.locale(res.locals.acceptedLocale)
next()
},
async initSettings (req, res, next) {
// initialize settings
req.settings = cloneDeep(settingsController.settings)
const settings = settingsController.settings
res.locals.settings = cloneDeep(settingsController.settings)
if (req.settings.smtp && req.settings.smtp.auth && req.settings.smtp.auth.pass) {
delete req.settings.smtp.auth.pass
if (res.locals.settings.smtp && res.locals.settings.smtp.auth) {
if (res.locals.user.is_admin) {
delete res.locals.settings.smtp.auth.pass
} else {
delete res.locals.settings.smtp
}
}
delete req.settings.publicKey
req.settings.baseurl = config.baseurl
req.settings.hostname = config.hostname
req.settings.title = req.settings.title || config.title
req.settings.description = req.settings.description || config.description
req.settings.version = pkg.version
delete res.locals.settings.publicKey
res.locals.settings.baseurl = config.baseurl
res.locals.settings.hostname = config.hostname
res.locals.settings.title = settings.title || config.title
res.locals.settings.description = settings.description || config.description
res.locals.settings.version = pkg.version
// select locale based on cookie and accept-language header
acceptLanguage.languages(Object.keys(locales))
req.acceptedLocale = acceptLanguage.get(req.headers['accept-language'])
// set locale and user locale
req.user_locale = settingsController.user_locale[req.acceptedLocale]
dayjs.locale(req.acceptedLocale)
// set user locale
res.locals.user_locale = settingsController.user_locale[res.locals.acceptedLocale]
next()
},
serveStatic () {
const settings = settingsController.settings
const router = express.Router()
// serve event's images/thumb
router.use('/media/', express.static(config.upload_path, { immutable: true, maxAge: '1y' } ))
router.use('/noimg.svg', express.static('./static/noimg.svg'))
router.use('/logo.png', (req, res, next) => {
const logoPath = req.settings.logo || './static/gancio'
const logoPath = settings.logo || './static/gancio'
return express.static(logoPath + '.png')(req, res, next)
})
router.use('/favicon.ico', (req, res, next) => {
const faviconPath = req.settings.logo || './assets/favicon'
const faviconPath = settings.logo || './assets/favicon'
return express.static(faviconPath + '.ico')(req, res, next)
})