import java.util.Dictionary;
import java.util.List;
+import java.util.Map;
import javax.naming.InvalidNameException;
import javax.naming.ldap.LdapName;
import org.argeo.eclipse.ui.dialogs.ErrorFeedback;
import org.argeo.jcr.ArgeoNames;
import org.argeo.osgi.useradmin.LdifName;
+import org.argeo.osgi.useradmin.UserAdminConf;
import org.argeo.security.ui.admin.SecurityAdminPlugin;
import org.argeo.security.ui.admin.internal.UiAdminUtils;
import org.argeo.security.ui.admin.internal.UserAdminWrapper;
}
+ private Map<String, String> getDns() {
+ return userAdminWrapper.getKnownBaseDns(true);
+ }
+
private String getDn(String uid) {
- return "uid=" + uid + ",ou=users," + baseDnCmb.getText();
+ Map<String, String> dns = getDns();
+ String bdn = baseDnCmb.getText();
+ if (EclipseUiUtils.notEmpty(bdn)) {
+ Dictionary<String, ?> props = UserAdminConf.uriAsProperties(dns
+ .get(bdn));
+ String dn = LdifName.uid.name() + "=" + uid + ","
+ + UserAdminConf.userBase.getValue(props) + "," + bdn;
+ return dn;
+ }
+ return null;
}
private void initialiseDnCmb(Combo combo) {
- List<String> dns = userAdminWrapper.getKnownBaseDns(true);
+ Map<String, String> dns = userAdminWrapper.getKnownBaseDns(true);
if (dns.isEmpty())
throw new ArgeoException(
"No writable base dn found. Cannot create user");
- combo.setItems(dns.toArray(new String[0]));
+ combo.setItems(dns.keySet().toArray(new String[0]));
if (dns.size() == 1)
combo.select(0);
}