]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.util/src/org/argeo/osgi/useradmin/OsUserDirectory.java
Fix functional filter
[lgpl/argeo-commons.git] / org.argeo.util / src / org / argeo / osgi / useradmin / OsUserDirectory.java
index fe1ca7643f1a4ecf1596beeb870e9efdc21f7a2d..3ded7a7a6a6ce28cfd277663b6efbb9e238a4810 100644 (file)
@@ -11,24 +11,26 @@ import javax.naming.directory.Attributes;
 import javax.naming.directory.BasicAttributes;
 import javax.naming.ldap.LdapName;
 
-import org.argeo.naming.LdapAttrs;
+import org.argeo.util.naming.LdapAttrs;
 import org.osgi.framework.Filter;
 import org.osgi.service.useradmin.User;
 
+/** Pseudo user directory to be used when logging in as OS user. */
 public class OsUserDirectory extends AbstractUserDirectory {
        private final String osUsername = System.getProperty("user.name");
        private final LdapName osUserDn;
-       private final LdifUser osUser;
+       private final DirectoryUser osUser;
 
        public OsUserDirectory(URI uriArg, Dictionary<String, ?> props) {
                super(uriArg, props, false);
                try {
-                       osUserDn = new LdapName(LdapAttrs.uid.name() + "=" + osUsername + "," + getUserBase() + "," + getBaseDn());
+                       osUserDn = new LdapName(
+                                       LdapAttrs.uid.name() + "=" + osUsername + "," + getUserBaseRdn() + "," + getBaseDn());
                        Attributes attributes = new BasicAttributes();
                        attributes.put(LdapAttrs.uid.name(), osUsername);
-                       osUser = new LdifUser(this, osUserDn, attributes);
+                       osUser = newUser(osUserDn, attributes);
                } catch (NamingException e) {
-                       throw new UserDirectoryException("Cannot create system user", e);
+                       throw new IllegalStateException("Cannot create system user", e);
                }
        }
 
@@ -51,7 +53,7 @@ public class OsUserDirectory extends AbstractUserDirectory {
        }
 
        @Override
-       protected List<DirectoryUser> doGetRoles(Filter f) {
+       protected List<DirectoryUser> doGetRoles(LdapName searchBase, Filter f, boolean deep) {
                List<DirectoryUser> res = new ArrayList<>();
                if (f == null || f.match(osUser.getProperties()))
                        res.add(osUser);
@@ -63,4 +65,14 @@ public class OsUserDirectory extends AbstractUserDirectory {
                throw new UnsupportedOperationException();
        }
 
+       @Override
+       protected HierarchyUnit doGetHierarchyUnit(LdapName dn) {
+               return null;
+       }
+
+       @Override
+       protected Iterable<HierarchyUnit> doGetDirectHierarchyUnits(LdapName searchBase, boolean functionalOnly) {
+               return new ArrayList<>();
+       }
+
 }