import javax.transaction.Status;
import javax.transaction.UserTransaction;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import org.argeo.ArgeoException;
import org.argeo.osgi.useradmin.UserAdminConf;
import org.osgi.framework.ServiceReference;
/** Simplifies the interaction with the UserAdmin in this bundle */
public class UserAdminWrapper {
- private Log log = LogFactory.getLog(UserAdminWrapper.class);
+ // private Log log = LogFactory.getLog(UserAdminWrapper.class);
private UserAdmin userAdmin;
private ServiceReference<UserAdmin> userAdminServiceReference;
public void setUserAdminServiceReference(
ServiceReference<UserAdmin> userAdminServiceReference) {
this.userAdminServiceReference = userAdminServiceReference;
+ // for (String uri : userAdminServiceReference.getPropertyKeys()) {
+ // if (!uri.startsWith("/"))
+ // continue;
+ // log.debug(uri);
+ // Dictionary<String, ?> props = UserAdminConf.uriAsProperties(uri);
+ // log.debug(props);
+ // }
+ }
+
+ public List<String> getKnownBaseDns(boolean onlyWritable) {
+ List<String> dns = new ArrayList<String>();
for (String uri : userAdminServiceReference.getPropertyKeys()) {
if (!uri.startsWith("/"))
continue;
- log.debug(uri);
Dictionary<String, ?> props = UserAdminConf.uriAsProperties(uri);
- log.debug(props);
+ String readOnly = UserAdminConf.readOnly.getValue(props);
+ String baseDn = UserAdminConf.baseDn.getValue(props);
+
+ if (onlyWritable && "true".equals(readOnly))
+ continue;
+ dns.add(baseDn);
}
+ return dns;
}
+ // // Returns the human friendly domain name give a dn.
+ // public String getDomainName(String dn) {
+ // if (dn.endsWith("ou=roles, ou=node"))
+ // return "System roles";
+ // try {
+ //
+ // LdapName name;
+ // name = new LdapName(dn);
+ // List<Rdn> rdns = name.getRdns();
+ //
+ // String penultimate = (String) rdns.get(rdns.size() - 2).getValue();
+ // String last = (String) rdns.get(rdns.size() - 1).getValue();
+ // return (penultimate + '.' + last);
+ // } catch (InvalidNameException e) {
+ // throw new ArgeoException("Unable to get domain name for " + dn, e);
+ // }
+ // }
+
public void setUserTransaction(UserTransaction userTransaction) {
this.userTransaction = userTransaction;
}
-
-}
+}
\ No newline at end of file