overleaf/services/web/app/src/Features/UserMembership/UserMembershipRouter.js

117 lines
3.9 KiB
JavaScript
Raw Normal View History

// TODO: This file was created by bulk-decaffeinate.
// Sanity-check the conversion and remove this comment.
/*
* decaffeinate suggestions:
* DS102: Remove unnecessary code created because of implicit returns
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
*/
const UserMembershipAuthorization = require('./UserMembershipAuthorization')
const UserMembershipController = require('./UserMembershipController')
const SubscriptionGroupController = require('../Subscription/SubscriptionGroupController')
const TeamInvitesController = require('../Subscription/TeamInvitesController')
const RateLimiterMiddleware = require('../Security/RateLimiterMiddleware')
module.exports = {
apply(webRouter) {
// group members routes
webRouter.get(
'/manage/groups/:id/members',
UserMembershipAuthorization.requireGroupManagementAccess,
UserMembershipController.index
)
webRouter.post(
'/manage/groups/:id/invites',
UserMembershipAuthorization.requireGroupManagementAccess,
RateLimiterMiddleware.rateLimit({
endpointName: 'create-team-invite',
maxRequests: 100,
timeInterval: 60
}),
TeamInvitesController.createInvite
)
webRouter.delete(
'/manage/groups/:id/user/:user_id',
UserMembershipAuthorization.requireGroupManagementAccess,
SubscriptionGroupController.removeUserFromGroup
)
webRouter.delete(
'/manage/groups/:id/invites/:email',
UserMembershipAuthorization.requireGroupManagementAccess,
TeamInvitesController.revokeInvite
)
webRouter.get(
'/manage/groups/:id/members/export',
UserMembershipAuthorization.requireGroupManagementAccess,
RateLimiterMiddleware.rateLimit({
endpointName: 'export-team-csv',
maxRequests: 30,
timeInterval: 60
}),
UserMembershipController.exportCsv
)
// group managers routes
webRouter.get(
'/manage/groups/:id/managers',
UserMembershipAuthorization.requireGroupManagersManagementAccess,
UserMembershipController.index
)
webRouter.post(
'/manage/groups/:id/managers',
UserMembershipAuthorization.requireGroupManagersManagementAccess,
UserMembershipController.add
)
webRouter.delete(
'/manage/groups/:id/managers/:userId',
UserMembershipAuthorization.requireGroupManagersManagementAccess,
UserMembershipController.remove
)
// institution members routes
webRouter.get(
'/manage/institutions/:id/managers',
UserMembershipAuthorization.requireInstitutionManagementAccess,
UserMembershipController.index
)
webRouter.post(
'/manage/institutions/:id/managers',
UserMembershipAuthorization.requireInstitutionManagementAccess,
UserMembershipController.add
)
webRouter.delete(
'/manage/institutions/:id/managers/:userId',
UserMembershipAuthorization.requireInstitutionManagementAccess,
UserMembershipController.remove
)
// publisher members routes
webRouter.get(
'/manage/publishers/:id/managers',
UserMembershipAuthorization.requirePublisherManagementAccess,
UserMembershipController.index
)
webRouter.post(
'/manage/publishers/:id/managers',
UserMembershipAuthorization.requirePublisherManagementAccess,
UserMembershipController.add
)
webRouter.delete(
'/manage/publishers/:id/managers/:userId',
UserMembershipAuthorization.requirePublisherManagementAccess,
UserMembershipController.remove
)
// create new entitites
webRouter.get(
'/entities/:name/create/:id',
UserMembershipAuthorization.requireEntityCreationAccess,
UserMembershipController.new
)
return webRouter.post(
'/entities/:name/create/:id',
UserMembershipAuthorization.requireEntityCreationAccess,
UserMembershipController.create
)
}
}