From d7448eb8f16a72920075072b4639adfd678e7643 Mon Sep 17 00:00:00 2001 From: Lucio Lelii Date: Wed, 9 Jan 2019 16:38:53 +0000 Subject: [PATCH] git-svn-id: https://svn.d4science-ii.research-infrastructures.eu/gcube/branches/data-access/storagehub-webapp/1.0@176426 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../access/storagehub/services/ItemsManager.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/gcube/data/access/storagehub/services/ItemsManager.java b/src/main/java/org/gcube/data/access/storagehub/services/ItemsManager.java index ef086c2..8d82442 100644 --- a/src/main/java/org/gcube/data/access/storagehub/services/ItemsManager.java +++ b/src/main/java/org/gcube/data/access/storagehub/services/ItemsManager.java @@ -149,12 +149,22 @@ public class ItemsManager { try{ ses = repository.getRepository().login(CredentialHandler.getAdminCredentials(context)); authChecker.checkReadAuthorizationControl(ses, id); + + //NOT using the internal pattern matching of jcr because of title for shared folder NodeIterator it = ses.getNodeByIdentifier(id).getNodes(); while (it.hasNext()) { Node child= it.nextNode(); - Item item = node2Item.getItem(child, excludes); - if (item.getName().equalsIgnoreCase(name) || item.getTitle().equalsIgnoreCase(name)) - toReturn.add(item); + String nodeName = child.getName(); + if (!child.hasProperty(NodeProperty.TITLE.toString())) continue; + String title = child.getProperty(NodeProperty.TITLE.toString()).getString(); + + String cleanedName = name; + if (name.startsWith("*")) cleanedName = name.substring(1); + if (name.endsWith("*")) cleanedName = name.substring(0, name.length()-1); + + if ((name.startsWith("*") && (nodeName.endsWith(cleanedName) || title.endsWith(cleanedName))) || (name.endsWith("*") && (nodeName.startsWith(cleanedName) || title.startsWith(cleanedName))) + || (nodeName.equals(cleanedName) || title.equals(cleanedName))) + toReturn.add(node2Item.getItem(child, excludes)); } }catch(RepositoryException re){