From 3fe790b2db944da9ab7ec9b848b868b12f0f2be8 Mon Sep 17 00:00:00 2001 From: Blayne Chard Date: Wed, 20 Apr 2016 21:00:04 +1200 Subject: [PATCH] Compress the ACL queries into a single $in query --- src/Adapters/Storage/Mongo/MongoTransform.js | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/src/Adapters/Storage/Mongo/MongoTransform.js b/src/Adapters/Storage/Mongo/MongoTransform.js index fae68ffcd2..b18a38342d 100644 --- a/src/Adapters/Storage/Mongo/MongoTransform.js +++ b/src/Adapters/Storage/Mongo/MongoTransform.js @@ -823,24 +823,11 @@ function transformNotInQuery(notInQueryObject, className, results) { } function addWriteACL(mongoWhere, acl) { - var writePerms = [ - {_wperm: {'$exists': false}} - ]; - for (var entry of acl) { - writePerms.push({_wperm: {'$in': [entry]}}); - } - return {'$and': [mongoWhere, {'$or': writePerms}]}; + return {'$and': [mongoWhere, {"_wperm" : { "$in" : [null, ...acl]}}]}; } function addReadACL(mongoWhere, acl) { - var orParts = [ - {"_rperm" : { "$exists": false }}, - {"_rperm" : { "$in" : ["*"]}} - ]; - for (var entry of acl) { - orParts.push({"_rperm" : { "$in" : [entry]}}); - } - return {'$and': [mongoWhere, {'$or': orParts}]}; + return {'$and': [mongoWhere, {"_rperm" : { "$in" : [null, "*", ...acl]}}]}; } var DateCoder = {