X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.enterprise%2Fsrc%2Forg%2Fargeo%2Fosgi%2Fuseradmin%2FLdifUserAdmin.java;h=8ec967b7007a73c8875e557b6e8ecee6c0305105;hb=a2ad417ed1d0219ac29d70ae985939764c13ce38;hp=521ae8bb6e89916c6b88ea490767658e8b3012fa;hpb=e66b9893b0e511f8ab295e3cee42b7dc966f1597;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.enterprise/src/org/argeo/osgi/useradmin/LdifUserAdmin.java b/org.argeo.enterprise/src/org/argeo/osgi/useradmin/LdifUserAdmin.java index 521ae8bb6..8ec967b70 100644 --- a/org.argeo.enterprise/src/org/argeo/osgi/useradmin/LdifUserAdmin.java +++ b/org.argeo.enterprise/src/org/argeo/osgi/useradmin/LdifUserAdmin.java @@ -1,7 +1,7 @@ package org.argeo.osgi.useradmin; -import static org.argeo.osgi.useradmin.LdifName.inetOrgPerson; -import static org.argeo.osgi.useradmin.LdifName.objectClass; +import static org.argeo.naming.LdapAttrs.objectClass; +import static org.argeo.naming.LdapObjs.inetOrgPerson; import java.io.File; import java.io.FileOutputStream; @@ -22,10 +22,11 @@ import javax.naming.directory.Attributes; import javax.naming.ldap.LdapName; import javax.transaction.TransactionManager; -import org.argeo.util.naming.LdifParser; -import org.argeo.util.naming.LdifWriter; +import org.argeo.naming.LdifParser; +import org.argeo.naming.LdifWriter; import org.osgi.framework.Filter; import org.osgi.service.useradmin.Role; +import org.osgi.service.useradmin.User; /** * A user admin based on a LDIF files. Requires a {@link TransactionManager} and @@ -48,6 +49,13 @@ public class LdifUserAdmin extends AbstractUserDirectory { load(in); } + @Override + protected AbstractUserDirectory scope(User user) { + Dictionary properties = cloneProperties(); + properties.put(UserAdminConf.readOnly.name(), "true"); + return new LdifUserAdmin(properties); + } + private static Dictionary fromUri(String uri, String baseDn) { Hashtable res = new Hashtable(); res.put(UserAdminConf.uri.name(), uri);