|
|
@@ -122,6 +122,18 @@ module.exports = UserMembershipAuthorization = {
|
|
|
)
|
|
|
},
|
|
|
|
|
|
+ requireAdminMetricsStaffAccess(req, res, next) {
|
|
|
+ return requireAccessToEntity(
|
|
|
+ 'admin',
|
|
|
+ 'admin',
|
|
|
+ req,
|
|
|
+ res,
|
|
|
+ next,
|
|
|
+ 'adminMetrics',
|
|
|
+ true
|
|
|
+ )
|
|
|
+ },
|
|
|
+
|
|
|
requireTemplateMetricsAccess(req, res, next) {
|
|
|
const templateId = req.params.id
|
|
|
return request(
|
|
|
@@ -202,6 +214,12 @@ module.exports = UserMembershipAuthorization = {
|
|
|
res,
|
|
|
next
|
|
|
)
|
|
|
+ } else if (req.query.resource_type === 'admin') {
|
|
|
+ return UserMembershipAuthorization.requireAdminMetricsStaffAccess(
|
|
|
+ req,
|
|
|
+ res,
|
|
|
+ next
|
|
|
+ )
|
|
|
}
|
|
|
return requireAccessToEntity(
|
|
|
req.query.resource_type,
|
|
|
@@ -294,6 +312,9 @@ var getEntity = function(
|
|
|
if (!entityConfig) {
|
|
|
return callback(new Errors.NotFoundError(`No such entity: ${entityName}`))
|
|
|
}
|
|
|
+ if (!entityConfig.modelName) {
|
|
|
+ return callback(null, { id: entityName }, entityConfig, true)
|
|
|
+ }
|
|
|
|
|
|
return UserMembershipHandler.getEntity(
|
|
|
entityId,
|