Add in Features module to handle feature flags, and use it to cleanly turn off registration

This commit is contained in:
James Allen 2017-11-20 10:47:32 +00:00
parent b6289f03e3
commit 745ae8d081
3 changed files with 9 additions and 7 deletions

View file

@ -14,6 +14,7 @@ PackageVersions = require "./PackageVersions"
htmlEncoder = new require("node-html-encoder").Encoder("numerical")
fingerprints = {}
Path = require 'path'
Features = require "./Features"
jsPath =
if Settings.useMinifiedJs
@ -88,8 +89,9 @@ module.exports = (app, webRouter, privateApiRouter, publicApiRouter)->
publicApiRouter.use addSetContentDisposition
webRouter.use (req, res, next)->
req.externalAuthenticationSystemUsed = res.locals.externalAuthenticationSystemUsed = ->
Settings.ldap? or Settings.saml?
req.externalAuthenticationSystemUsed = Features.externalAuthenticationSystemUsed
res.locals.externalAuthenticationSystemUsed = Features.externalAuthenticationSystemUsed
req.hasFeature = res.locals.hasFeature = Features.hasFeature
next()
webRouter.use (req, res, next)->

View file

@ -45,6 +45,7 @@ AnalyticsRouter = require('./Features/Analytics/AnalyticsRouter')
AnnouncementsController = require("./Features/Announcements/AnnouncementsController")
LabelsController = require('./Features/Labels/LabelsController')
TokenAccessController = require('./Features/TokenAccess/TokenAccessController')
Features = require('./infrastructure/Features')
logger = require("logger-sharelatex")
_ = require("underscore")
@ -63,10 +64,9 @@ module.exports = class Router
webRouter.get '/logout', UserController.logout
webRouter.get '/restricted', AuthorizationMiddlewear.restricted
# Left as a placeholder for implementing a public register page
webRouter.get '/register', UserPagesController.registerPage
AuthenticationController.addEndpointToLoginWhitelist '/register'
if Features.hasFeature('registration')
webRouter.get '/register', UserPagesController.registerPage
AuthenticationController.addEndpointToLoginWhitelist '/register'
EditorRouter.apply(webRouter, privateApiRouter)
CollaboratorsRouter.apply(webRouter, privateApiRouter)

View file

@ -54,7 +54,7 @@ nav.navbar.navbar-default
// logged out
if !getSessionUser()
// register link
if !externalAuthenticationSystemUsed()
if hasFeature('registration')
li
a(href="/register") #{translate('register')}