SystemMessageController.mjs 837 B

123456789101112131415161718192021222324252627
  1. import Settings from '@overleaf/settings'
  2. import SessionManager from '../Authentication/SessionManager.mjs'
  3. import SystemMessageManager from './SystemMessageManager.mjs'
  4. const ProjectController = {
  5. getMessages(req, res, next) {
  6. if (!SessionManager.isUserLoggedIn(req.session)) {
  7. // gracefully handle requests from anonymous users
  8. return res.json([])
  9. }
  10. let messages = SystemMessageManager.getMessages()
  11. if (!Settings.siteIsOpen) {
  12. // Override all messages with notice for admins when site is closed.
  13. messages = [
  14. {
  15. content:
  16. 'SITE IS CLOSED TO PUBLIC. OPEN ONLY FOR SITE ADMINS. DO NOT EDIT PROJECTS.',
  17. _id: 'protected', // prevents hiding message in frontend
  18. },
  19. ]
  20. }
  21. res.json(messages || [])
  22. },
  23. }
  24. export default ProjectController