diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/solr/solr.lib.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/solr/solr.lib.ftl index 695b9d5e21..a7487f2ece 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/solr/solr.lib.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/solr/solr.lib.ftl @@ -26,6 +26,13 @@ "${reader?string}" <#if reader_has_next>, + ], + "denied" : + [ + <#list aclReaders.denied as denied> + "${denied?string}" + <#if denied_has_next>, + ] } diff --git a/source/test-java/org/alfresco/repo/web/scripts/solr/SOLRWebScriptTest.java b/source/test-java/org/alfresco/repo/web/scripts/solr/SOLRWebScriptTest.java index 28e6d96bd8..9f073f9e59 100644 --- a/source/test-java/org/alfresco/repo/web/scripts/solr/SOLRWebScriptTest.java +++ b/source/test-java/org/alfresco/repo/web/scripts/solr/SOLRWebScriptTest.java @@ -214,7 +214,7 @@ public class SOLRWebScriptTest extends BaseWebScriptTest ); } - public void aclReadersGetImpl() throws Exception + private void aclReadersGetImpl() throws Exception { List aclChangeSets = solrTrackingComponent.getAclChangeSets(null, null, null, null, 1024); List aclChangeSetIds = new ArrayList(50); @@ -252,6 +252,13 @@ public class SOLRWebScriptTest extends BaseWebScriptTest readersByAclId.put(aclReaders.getAclId(), aclReaders.getReaders()); } + Map> deniedByAclId = new HashMap>(); + for (AclReaders aclReaders : aclsReaders) + { + assertNotNull("AclReaders should not contain null denial set", aclReaders.getDenied()); + deniedByAclId.put(aclReaders.getAclId(), aclReaders.getDenied()); + } + // Now query using the webscript String url = "/api/solr/aclsReaders"; TestWebScriptServer.PostRequest req = new TestWebScriptServer.PostRequest(url, json.toString(), "application/json"); @@ -279,6 +286,15 @@ public class SOLRWebScriptTest extends BaseWebScriptTest String readerJSON = readersJSON.getString(j); assertTrue("Found reader not in check set: " + readerJSON, readersCheck.contains(readerJSON)); } + + Set deniedCheck = deniedByAclId.get(aclIdJSON); + JSONArray deniedJSON = aclReadersJSON.getJSONArray("denied"); + assertEquals("Denied list for ACL " + aclIdJSON + " is wrong. ", deniedCheck.size(), deniedJSON.length()); + for (int j = 0; j < deniedJSON.length(); j++) + { + String denyJSON = deniedJSON.getString(j); + assertTrue("Found denied authority not in check set: " + denyJSON, deniedCheck.contains(denyJSON)); + } } } @@ -559,6 +575,8 @@ public class SOLRWebScriptTest extends BaseWebScriptTest GetNodesParameters params = new GetNodesParameters(); params.setTransactionIds(transactionIds); + params.setStoreProtocol(storeRef.getProtocol()); + params.setStoreIdentifier(storeRef.getIdentifier()); JSONArray nodes = getNodes(params, 0, 2); List nodeIds = new ArrayList(nodes.length()); @@ -640,6 +658,8 @@ public class SOLRWebScriptTest extends BaseWebScriptTest GetNodesParameters params = new GetNodesParameters(); params.setTransactionIds(transactionIds); + params.setStoreProtocol(storeRef.getProtocol()); + params.setStoreIdentifier(storeRef.getIdentifier()); JSONArray nodes = getNodes(params, 0, 2); List nodeIds = new ArrayList(nodes.length()); @@ -679,6 +699,8 @@ public class SOLRWebScriptTest extends BaseWebScriptTest List transactionIds = getTransactionIds(transactions); GetNodesParameters params = new GetNodesParameters(); + params.setStoreProtocol(storeRef.getProtocol()); + params.setStoreIdentifier(storeRef.getIdentifier()); params.setTransactionIds(transactionIds); JSONArray nodes = getNodes(params, 0, 2001);