X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.security.ui.admin%2Fsrc%2Forg%2Fargeo%2Fsecurity%2Fui%2Fadmin%2Finternal%2Fcommands%2FNewGroup.java;h=5943c0c963a28fbb2d1cc6f53255db3b2f4b8d57;hb=a256888183f0232384bd7be0c8309b4ce9889823;hp=bc90a46d7a9b77a6dc669046b782cfd5d038e4bc;hpb=081e25f3b95f41cf1d400f5dc926387e9f92f8aa;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/NewGroup.java b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/NewGroup.java index bc90a46d7..5943c0c96 100644 --- a/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/NewGroup.java +++ b/org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/commands/NewGroup.java @@ -16,13 +16,14 @@ package org.argeo.security.ui.admin.internal.commands; import java.util.Dictionary; -import java.util.List; +import java.util.Map; import org.argeo.ArgeoException; import org.argeo.eclipse.ui.EclipseUiUtils; 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; @@ -205,20 +206,32 @@ public class NewGroup extends AbstractHandler { } } + private Map getDns() { + return userAdminWrapper.getKnownBaseDns(true); + } + private String getDn(String cn) { - return "cn=" + cn + ",ou=groups," + baseDnCmb.getText(); + Map dns = getDns(); + String bdn = baseDnCmb.getText(); + if (EclipseUiUtils.notEmpty(bdn)) { + Dictionary props = UserAdminConf.uriAsProperties(dns + .get(bdn)); + String dn = LdifName.cn.name()+"=" + cn + "," + + UserAdminConf.groupBase.getValue(props) + "," + bdn; + return dn; + } + return null; } private void initialiseDnCmb(Combo combo) { - List dns = userAdminWrapper.getKnownBaseDns(true); + Map 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])); + "No writable base dn found. Cannot create group"); + combo.setItems(dns.keySet().toArray(new String[0])); if (dns.size() == 1) combo.select(0); } - } private Combo createGridLC(Composite parent, String label) {