forked from kaverti/website
60 lines
1.3 KiB
JavaScript
60 lines
1.3 KiB
JavaScript
let express = require('express')
|
|
let router = express.Router()
|
|
const auth = require('../lib/auth')
|
|
|
|
const Errors = require('../lib/errors')
|
|
let { Settings, Ban, Sequelize } = require('../models')
|
|
|
|
router.get('/', async(req, res, next) => {
|
|
try {
|
|
let settings = await Settings.get()
|
|
|
|
if(!settings) throw Errors.noSettings
|
|
|
|
res.json(settings.toJSON())
|
|
} catch (e) { next(e) }
|
|
|
|
})
|
|
|
|
router.all('*', auth, (req, res, next) => {
|
|
if(req.userData.admin) {
|
|
next()
|
|
} else {
|
|
res.status(401)
|
|
res.json({
|
|
errors: [Errors.requestNotAuthorized]
|
|
})
|
|
}
|
|
})
|
|
|
|
router.put('/', auth, async(req, res, next) => {
|
|
try {
|
|
throw Errors.featureDisabledState
|
|
await Ban.ReadOnlyMode(req.userData.username)
|
|
let params = {}
|
|
|
|
if(req.body.siteName) {
|
|
params.siteName = req.body.siteName
|
|
}
|
|
if(req.body.siteDesc !== undefined) {
|
|
params.siteDesc = req.body.siteDesc
|
|
}
|
|
if(req.body.showDescription !== undefined) {
|
|
params.showDescription = req.body.showDescription
|
|
}
|
|
if(req.body.bannerEnabled !== undefined) {
|
|
params.bannerEnabled = req.body.bannerEnabled
|
|
}
|
|
if(req.body.bannerText !== undefined) {
|
|
params.bannerText = req.body.bannerText
|
|
}
|
|
|
|
let updatedSettings = await Settings.set(params)
|
|
|
|
res.json(params)
|
|
|
|
} catch (e) { next(e) }
|
|
})
|
|
|
|
module.exports = router
|