UserMembershipRouter.coffee 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. UserMembershipAuthorization = require './UserMembershipAuthorization'
  2. UserMembershipController = require './UserMembershipController'
  3. SubscriptionGroupController = require '../Subscription/SubscriptionGroupController'
  4. TeamInvitesController = require '../Subscription/TeamInvitesController'
  5. module.exports =
  6. apply: (webRouter) ->
  7. webRouter.get '/manage/groups/:id/members',
  8. UserMembershipAuthorization.requireEntityAccess('group'),
  9. UserMembershipController.index
  10. webRouter.post '/manage/groups/:id/invites',
  11. UserMembershipAuthorization.requireEntityAccess('group'),
  12. TeamInvitesController.createInvite
  13. webRouter.delete '/manage/groups/:id/user/:user_id',
  14. UserMembershipAuthorization.requireEntityAccess('group'),
  15. SubscriptionGroupController.removeUserFromGroup
  16. webRouter.delete '/manage/groups/:id/invites/:email',
  17. UserMembershipAuthorization.requireEntityAccess('group'),
  18. TeamInvitesController.revokeInvite
  19. webRouter.get '/manage/groups/:id/members/export',
  20. UserMembershipAuthorization.requireEntityAccess('group'),
  21. UserMembershipController.exportCsv
  22. regularEntitites =
  23. groups: 'groupManagers'
  24. institutions: 'institution'
  25. for pathName, entityName of regularEntitites
  26. do (pathName, entityName) ->
  27. webRouter.get "/manage/#{pathName}/:id/managers",
  28. UserMembershipAuthorization.requireEntityAccess(entityName),
  29. UserMembershipController.index
  30. webRouter.post "/manage/#{pathName}/:id/managers",
  31. UserMembershipAuthorization.requireEntityAccess(entityName),
  32. UserMembershipController.add
  33. webRouter.delete "/manage/#{pathName}/:id/managers/:userId",
  34. UserMembershipAuthorization.requireEntityAccess(entityName),
  35. UserMembershipController.remove