X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Facr%2Fdirectory%2FDirectoryContentProvider.java;h=aab5d6dc06a56ab69cdd533a800450c38f01c8a9;hb=1d6840195189cbdbf632ca2800b6179d3b6349df;hp=c1ded945a61b9ac29b0f97f631b47e25c889e9ff;hpb=99bca5f6b71c24837c23cf2a9bb944e09dca3dea;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/acr/directory/DirectoryContentProvider.java b/org.argeo.cms/src/org/argeo/cms/acr/directory/DirectoryContentProvider.java index c1ded945a..aab5d6dc0 100644 --- a/org.argeo.cms/src/org/argeo/cms/acr/directory/DirectoryContentProvider.java +++ b/org.argeo.cms/src/org/argeo/cms/acr/directory/DirectoryContentProvider.java @@ -17,8 +17,8 @@ import org.argeo.api.acr.spi.ProvidedSession; import org.argeo.cms.CmsUserManager; import org.argeo.cms.acr.AbstractContent; import org.argeo.cms.acr.ContentUtils; -import org.argeo.osgi.useradmin.HierarchyUnit; import org.argeo.osgi.useradmin.UserDirectory; +import org.argeo.util.directory.HierarchyUnit; import org.osgi.service.useradmin.User; public class DirectoryContentProvider implements ContentProvider { @@ -39,16 +39,17 @@ public class DirectoryContentProvider implements ContentProvider { List segments = ContentUtils.toPathSegments(relativePath); if (segments.size() == 0) return new UserManagerContent(session); - String userDirectoryDn = segments.get(0); + String userDirectoryName = segments.get(0); UserDirectory userDirectory = null; userDirectories: for (UserDirectory ud : userManager.getUserDirectories()) { - if (userDirectoryDn.equals(ud.getGlobalId())) { + if (userDirectoryName.equals(ud.getName())) { userDirectory = ud; break userDirectories; } } if (userDirectory == null) - throw new ContentNotFoundException("Cannot find user directory " + userDirectoryDn); + throw new ContentNotFoundException(session, mountPath + "/" + relativePath, + "Cannot find user directory " + userDirectoryName); if (segments.size() == 1) { return new DirectoryContent(session, this, userDirectory); } else { @@ -71,8 +72,9 @@ public class DirectoryContentProvider implements ContentProvider { } HierarchyUnit hierarchyUnit = userDirectory.getHierarchyUnit(pathWithinUserDirectory); if (hierarchyUnit == null) - throw new ContentNotFoundException( - "Cannot find " + pathWithinUserDirectory + " within " + userDirectoryDn); + throw new ContentNotFoundException(session, + mountPath + "/" + relativePath + "/" + pathWithinUserDirectory, + "Cannot find " + pathWithinUserDirectory + " within " + userDirectoryName); return new HierarchyUnitContent(session, this, hierarchyUnit); } } @@ -110,6 +112,9 @@ public class DirectoryContentProvider implements ContentProvider { return new UserManagerContent(session); } + /* + * COMMON UTILITIES + */ class UserManagerContent extends AbstractContent { public UserManagerContent(ProvidedSession session) {