import javax.naming.ldap.LdapName;
import javax.naming.ldap.Rdn;
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
+import org.argeo.cms.util.useradmin.UserAdminUtils;
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.UserAdminUtils;
import org.argeo.security.ui.admin.internal.UserAdminWrapper;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
if (!canFinish())
return false;
String username = mainUserInfo.getUsername();
+ userAdminWrapper.beginTransactionIfNeeded();
try {
- userAdminWrapper.beginTransactionIfNeeded();
User user = (User) userAdminWrapper.getUserAdmin().createRole(
getDn(username), Role.USER);
char[] password = mainUserInfo.getPassword();
user.getCredentials().put(null, password);
-
+ userAdminWrapper.commitOrNotifyTransactionStateChange();
userAdminWrapper.notifyListeners(new UserAdminEvent(null,
UserAdminEvent.ROLE_CREATED, user));
return true;
private void initialiseDnCmb(Combo combo) {
Map<String, String> dns = userAdminWrapper.getKnownBaseDns(true);
if (dns.isEmpty())
- throw new ArgeoException(
+ throw new CmsException(
"No writable base dn found. Cannot create user");
combo.setItems(dns.keySet().toArray(new String[0]));
if (dns.size() == 1)
return username + "@" + (String) rdns.get(1).getValue() + '.'
+ (String) rdns.get(0).getValue();
} catch (InvalidNameException e) {
- throw new ArgeoException("Unable to generate mail for "
+ throw new CmsException("Unable to generate mail for "
+ username + " with base dn " + baseDn, e);
}
}