UserMembershipRouter.coffee 3.2 KB

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