From 1bae41aef742a0d1d540270283ecc383bcea99c7 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Thu, 15 Oct 2015 13:53:34 +0000 Subject: [PATCH] Better managed change password git-svn-id: https://svn.argeo.org/commons/trunk@8491 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../ui/commands/OpenChangePasswordDialog.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/org.argeo.security.ui/src/org/argeo/security/ui/commands/OpenChangePasswordDialog.java b/org.argeo.security.ui/src/org/argeo/security/ui/commands/OpenChangePasswordDialog.java index 12cae7fb3..5f2a9cadd 100644 --- a/org.argeo.security.ui/src/org/argeo/security/ui/commands/OpenChangePasswordDialog.java +++ b/org.argeo.security.ui/src/org/argeo/security/ui/commands/OpenChangePasswordDialog.java @@ -33,6 +33,7 @@ import javax.transaction.UserTransaction; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.ArgeoException; +import org.argeo.eclipse.ui.dialogs.ErrorFeedback; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; @@ -80,11 +81,14 @@ public class OpenChangePasswordDialog extends AbstractHandler { } catch (InvalidNameException e) { throw new ArgeoException("Invalid user dn " + name, e); } + User user = (User) userAdmin.getRole(dn.toString()); + if (!user.hasCredential(null, oldPassword)) + throw new ArgeoException("Invalid password"); + if (newPassword.equals("")) + throw new ArgeoException("New password empty"); try { userTransaction.begin(); - User user = (User) userAdmin.getRole(dn.toString()); - if (user.hasCredential(null, oldPassword)) - user.getCredentials().put(null, newPassword); + user.getCredentials().put(null, newPassword); userTransaction.commit(); } catch (Exception e) { try { @@ -138,16 +142,14 @@ public class OpenChangePasswordDialog extends AbstractHandler { @Override protected void okPressed() { - if (!newPassword1.getText().equals(newPassword2.getText())) - throw new ArgeoException("Passwords are different"); try { + if (!newPassword1.getText().equals(newPassword2.getText())) + throw new ArgeoException("New passwords are different"); changePassword(oldPassword.getTextChars(), newPassword1.getTextChars()); close(); } catch (Exception e) { - MessageDialog.openError(newPassword1.getShell(), "Error", - "Cannot change password"); - e.printStackTrace(); + ErrorFeedback.show("Cannot change password", e); } } -- 2.30.2