diff --git a/src/routes/settings.js b/src/routes/settings.js index 25308cdfd..f523346eb 100644 --- a/src/routes/settings.js +++ b/src/routes/settings.js @@ -27,6 +27,9 @@ exports = module.exports = { getAppstoreConfig: getAppstoreConfig, setAppstoreConfig: setAppstoreConfig, + getOpenRegistration: getOpenRegistration, + setOpenRegistration: setOpenRegistration, + setFallbackCertificate: setFallbackCertificate, setAdminCertificate: setAdminCertificate }; @@ -234,6 +237,27 @@ function setAppstoreConfig(req, res, next) { }); } +function getOpenRegistration(req, res, next) { + settings.getOpenRegistration(function (error, enabled) { + if (error) return next(new HttpError(500, error)); + + next(new HttpSuccess(200, enabled)); + }); +} + +function setOpenRegistration(req, res, next) { + assert.strictEqual(typeof req.body, 'object'); + + if (typeof req.body.enabled !== 'boolean') return next(new HttpError(400, 'enabled is required')); + + settings.setOpenRegistration(req.body.enabled, function (error) { + if (error && error.reason === SettingsError.BAD_FIELD) return next(new HttpError(400, error.message)); + if (error) return next(new HttpError(500, error)); + + next(new HttpSuccess(200)); + }); +} + // default fallback cert function setFallbackCertificate(req, res, next) { assert.strictEqual(typeof req.body, 'object'); diff --git a/src/server.js b/src/server.js index cf1ad7816..6317d013d 100644 --- a/src/server.js +++ b/src/server.js @@ -203,6 +203,8 @@ function initializeExpressSync() { router.post('/api/v1/settings/appstore_config', settingsScope, routes.user.requireAdmin, routes.settings.setAppstoreConfig); router.get ('/api/v1/settings/mail_config', settingsScope, routes.user.requireAdmin, routes.settings.getMailConfig); router.post('/api/v1/settings/mail_config', settingsScope, routes.user.requireAdmin, routes.settings.setMailConfig); + router.get ('/api/v1/settings/open_registration', settingsScope, routes.user.requireAdmin, routes.settings.getOpenRegistration); + router.post('/api/v1/settings/open_registration', settingsScope, routes.user.requireAdmin, routes.settings.setOpenRegistration); // eventlog route router.get('/api/v1/eventlog', settingsScope, routes.user.requireAdmin, routes.eventlog.get);