UserMembershipRouter.coffee 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. UserMembershipAuthorization = require './UserMembershipAuthorization'
  2. UserMembershipController = require './UserMembershipController'
  3. SubscriptionGroupController = require '../Subscription/SubscriptionGroupController'
  4. TeamInvitesController = require '../Subscription/TeamInvitesController'
  5. RateLimiterMiddleware = require('../Security/RateLimiterMiddleware')
  6. module.exports =
  7. apply: (webRouter) ->
  8. # group members routes
  9. webRouter.get '/manage/groups/:id/members',
  10. UserMembershipAuthorization.requireGroupManagementAccess,
  11. UserMembershipController.index
  12. webRouter.post '/manage/groups/:id/invites',
  13. UserMembershipAuthorization.requireGroupManagementAccess,
  14. RateLimiterMiddleware.rateLimit({
  15. endpointName: "create-team-invite"
  16. maxRequests: 100
  17. timeInterval: 60
  18. }),
  19. TeamInvitesController.createInvite
  20. webRouter.delete '/manage/groups/:id/user/:user_id',
  21. UserMembershipAuthorization.requireGroupManagementAccess,
  22. SubscriptionGroupController.removeUserFromGroup
  23. webRouter.delete '/manage/groups/:id/invites/:email',
  24. UserMembershipAuthorization.requireGroupManagementAccess,
  25. TeamInvitesController.revokeInvite
  26. webRouter.get '/manage/groups/:id/members/export',
  27. UserMembershipAuthorization.requireGroupManagementAccess,
  28. RateLimiterMiddleware.rateLimit({
  29. endpointName: "export-team-csv"
  30. maxRequests: 30
  31. timeInterval: 60
  32. }),
  33. UserMembershipController.exportCsv
  34. # group managers routes
  35. webRouter.get "/manage/groups/:id/managers",
  36. UserMembershipAuthorization.requireGroupManagersManagementAccess,
  37. UserMembershipController.index
  38. webRouter.post "/manage/groups/:id/managers",
  39. UserMembershipAuthorization.requireGroupManagersManagementAccess,
  40. UserMembershipController.add
  41. webRouter.delete "/manage/groups/:id/managers/:userId",
  42. UserMembershipAuthorization.requireGroupManagersManagementAccess,
  43. UserMembershipController.remove
  44. # institution members routes
  45. webRouter.get "/manage/institutions/:id/managers",
  46. UserMembershipAuthorization.requireInstitutionManagementAccess,
  47. UserMembershipController.index
  48. webRouter.post "/manage/institutions/:id/managers",
  49. UserMembershipAuthorization.requireInstitutionManagementAccess,
  50. UserMembershipController.add
  51. webRouter.delete "/manage/institutions/:id/managers/:userId",
  52. UserMembershipAuthorization.requireInstitutionManagementAccess,
  53. UserMembershipController.remove
  54. # publisher members routes
  55. webRouter.get "/manage/publishers/:id/managers",
  56. UserMembershipAuthorization.requirePublisherManagementAccess,
  57. UserMembershipController.index
  58. webRouter.post "/manage/publishers/:id/managers",
  59. UserMembershipAuthorization.requirePublisherManagementAccess,
  60. UserMembershipController.add
  61. webRouter.delete "/manage/publishers/:id/managers/:userId",
  62. UserMembershipAuthorization.requirePublisherManagementAccess,
  63. UserMembershipController.remove
  64. # create new entitites
  65. webRouter.get "/entities/:name/create/:id",
  66. UserMembershipAuthorization.requireEntityCreationAccess,
  67. UserMembershipController.new
  68. webRouter.post "/entities/:name/create/:id",
  69. UserMembershipAuthorization.requireEntityCreationAccess,
  70. UserMembershipController.create