Start finalizing security
[lgpl/argeo-commons.git] / org.argeo.enterprise / src / org / argeo / osgi / useradmin / LdifUserAdmin.java
index 4ebca4fcff3a0c3b95ee27d5a16f107173ed8b14..8ec967b7007a73c8875e557b6e8ecee6c0305105 100644 (file)
@@ -1,7 +1,7 @@
 package org.argeo.osgi.useradmin;
 
-import static org.argeo.naming.LdapObjs.inetOrgPerson;
 import static org.argeo.naming.LdapAttrs.objectClass;
+import static org.argeo.naming.LdapObjs.inetOrgPerson;
 
 import java.io.File;
 import java.io.FileOutputStream;
@@ -26,6 +26,7 @@ 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<String, Object> properties = cloneProperties();
+               properties.put(UserAdminConf.readOnly.name(), "true");
+               return new LdifUserAdmin(properties);
+       }
+
        private static Dictionary<String, Object> fromUri(String uri, String baseDn) {
                Hashtable<String, Object> res = new Hashtable<String, Object>();
                res.put(UserAdminConf.uri.name(), uri);