Просмотр исходного кода

[web] Fix metrics pages membership middleware (#28194)

GitOrigin-RevId: c41c117e6999ee5ea202516e72f4d22c32a07668
Antoine Clausse 1 год назад
Родитель
Сommit
294fb94431

+ 22 - 0
services/web/app/src/Features/UserMembership/UserMembershipMiddleware.js

@@ -12,6 +12,17 @@ const { useAdminCapabilities } = require('../Helpers/AdminAuthorizationHelper')
 // set of middleware arrays or functions that checks user access to an entity
 // (publisher, institution, group, template, etc.)
 const UserMembershipMiddleware = {
+  requireTeamMetricsAccess: [
+    AuthenticationController.requireLogin(),
+    fetchEntityConfig('team'),
+    fetchEntity(),
+    requireEntity(),
+    allowAccessIfAny([
+      UserMembershipAuthorization.hasEntityAccess(),
+      UserMembershipAuthorization.hasStaffAccess('groupMetrics'),
+    ]),
+  ],
+
   requireGroup: [fetchEntityConfig('group'), fetchEntity(), requireEntity()],
 
   requireGroupAccess: [
@@ -62,6 +73,17 @@ const UserMembershipMiddleware = {
     ]),
   ],
 
+  requireGroupMetricsAccess: [
+    AuthenticationController.requireLogin(),
+    fetchEntityConfig('group'),
+    fetchEntity(),
+    requireEntity(),
+    allowAccessIfAny([
+      UserMembershipAuthorization.hasEntityAccess(),
+      UserMembershipAuthorization.hasStaffAccess('groupMetrics'),
+    ]),
+  ],
+
   requireInstitutionMetricsAccess: [
     AuthenticationController.requireLogin(),
     fetchEntityConfig('institution'),