SystemMessageController.js 978 B

12345678910111213141516171819202122232425262728293031
  1. const Settings = require('settings-sharelatex')
  2. const AuthenticationController = require('../Authentication/AuthenticationController')
  3. const SystemMessageManager = require('./SystemMessageManager')
  4. const ProjectController = {
  5. getMessages(req, res, next) {
  6. if (!AuthenticationController.isUserLoggedIn(req)) {
  7. // gracefully handle requests from anonymous users
  8. return res.json([])
  9. }
  10. SystemMessageManager.getMessages((err, messages) => {
  11. if (err) {
  12. next(err)
  13. } else {
  14. if (!Settings.siteIsOpen) {
  15. // Override all messages with notice for admins when site is closed.
  16. messages = [
  17. {
  18. content:
  19. 'SITE IS CLOSED TO PUBLIC. OPEN ONLY FOR SITE ADMINS. DO NOT EDIT PROJECTS.',
  20. _id: 'protected' // prevents hiding message in frontend
  21. }
  22. ]
  23. }
  24. res.json(messages || [])
  25. }
  26. })
  27. }
  28. }
  29. module.exports = ProjectController