UserMembershipController.coffee 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. AuthenticationController = require('../Authentication/AuthenticationController')
  2. UserMembershipHandler = require('./UserMembershipHandler')
  3. EntityConfigs = require('./UserMembershipEntityConfigs')
  4. Errors = require('../Errors/Errors')
  5. logger = require("logger-sharelatex")
  6. module.exports =
  7. index: (req, res, next)->
  8. { entity, entityConfig } = req
  9. UserMembershipHandler.getUsers entity, entityConfig, (error, users)->
  10. return next(error) if error?
  11. entityPrimaryKey = entity[entityConfig.fields.primaryKey].toString()
  12. res.render "user_membership/index",
  13. users: users
  14. groupSize: entity.membersLimit if entityConfig.hasMembersLimit
  15. translations: entityConfig.translations
  16. paths: entityConfig.pathsFor(entityPrimaryKey)
  17. add: (req, res, next)->
  18. { entity, entityConfig } = req
  19. email = req.body.email
  20. return res.sendStatus 422 unless email
  21. if entityConfig.readOnly
  22. return next(new Errors.NotFoundError("Cannot add users to entity"))
  23. UserMembershipHandler.addUser entity, entityConfig, email, (error, user)->
  24. return next(error) if error?
  25. res.json(user: user)
  26. remove: (req, res, next)->
  27. { entity, entityConfig } = req
  28. userId = req.params.userId
  29. if entityConfig.readOnly
  30. return next(new Errors.NotFoundError("Cannot remove users from entity"))
  31. UserMembershipHandler.removeUser entity, entityConfig, userId, (error, user)->
  32. return next(error) if error?
  33. res.send()