Przeglądaj źródła

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

GitOrigin-RevId: c41c117e6999ee5ea202516e72f4d22c32a07668
Antoine Clausse 1 rok temu
rodzic
commit
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
 // set of middleware arrays or functions that checks user access to an entity
 // (publisher, institution, group, template, etc.)
 // (publisher, institution, group, template, etc.)
 const UserMembershipMiddleware = {
 const UserMembershipMiddleware = {
+  requireTeamMetricsAccess: [
+    AuthenticationController.requireLogin(),
+    fetchEntityConfig('team'),
+    fetchEntity(),
+    requireEntity(),
+    allowAccessIfAny([
+      UserMembershipAuthorization.hasEntityAccess(),
+      UserMembershipAuthorization.hasStaffAccess('groupMetrics'),
+    ]),
+  ],
+
   requireGroup: [fetchEntityConfig('group'), fetchEntity(), requireEntity()],
   requireGroup: [fetchEntityConfig('group'), fetchEntity(), requireEntity()],
 
 
   requireGroupAccess: [
   requireGroupAccess: [
@@ -62,6 +73,17 @@ const UserMembershipMiddleware = {
     ]),
     ]),
   ],
   ],
 
 
+  requireGroupMetricsAccess: [
+    AuthenticationController.requireLogin(),
+    fetchEntityConfig('group'),
+    fetchEntity(),
+    requireEntity(),
+    allowAccessIfAny([
+      UserMembershipAuthorization.hasEntityAccess(),
+      UserMembershipAuthorization.hasStaffAccess('groupMetrics'),
+    ]),
+  ],
+
   requireInstitutionMetricsAccess: [
   requireInstitutionMetricsAccess: [
     AuthenticationController.requireLogin(),
     AuthenticationController.requireLogin(),
     fetchEntityConfig('institution'),
     fetchEntityConfig('institution'),