X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=security%2Fplugins%2Forg.argeo.security.ui%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fsecurity%2Fui%2Fdialogs%2FChangePasswordDialog.java;h=ba5fe4d78ddc00c0f17f730eff8202031cece25e;hb=1d5afdce3e91054f07ddd3c98309c363b4cf1d46;hp=e2e78e8145dc0154ee1b3cd4d7da96d426a3ce65;hpb=a7a5f4db586128a9bb2c171ee819eb3eb19f80aa;p=lgpl%2Fargeo-commons.git diff --git a/security/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/dialogs/ChangePasswordDialog.java b/security/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/dialogs/ChangePasswordDialog.java index e2e78e814..ba5fe4d78 100644 --- a/security/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/dialogs/ChangePasswordDialog.java +++ b/security/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/dialogs/ChangePasswordDialog.java @@ -1,7 +1,22 @@ +/* + * Copyright (C) 2007-2012 Mathieu Baudier + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.argeo.security.ui.dialogs; import org.argeo.ArgeoException; -import org.argeo.security.ArgeoSecurityService; +import org.argeo.eclipse.ui.ErrorFeedback; import org.eclipse.jface.dialogs.IMessageProvider; import org.eclipse.jface.dialogs.TitleAreaDialog; import org.eclipse.swt.SWT; @@ -13,16 +28,17 @@ import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; +import org.springframework.security.userdetails.UserDetailsManager; /** Dialog to change the current user password */ public class ChangePasswordDialog extends TitleAreaDialog { private Text currentPassword, newPassword1, newPassword2; - private ArgeoSecurityService securityService; + private UserDetailsManager userDetailsManager; public ChangePasswordDialog(Shell parentShell, - ArgeoSecurityService securityService) { + UserDetailsManager securityService) { super(parentShell); - this.securityService = securityService; + this.userDetailsManager = securityService; } protected Point getInitialSize() { @@ -48,9 +64,13 @@ public class ChangePasswordDialog extends TitleAreaDialog { protected void okPressed() { if (!newPassword1.getText().equals(newPassword2.getText())) throw new ArgeoException("Passwords are different"); - securityService.updateCurrentUserPassword(currentPassword.getText(), - newPassword1.getText()); - close(); + try { + userDetailsManager.changePassword(currentPassword.getText(), + newPassword1.getText()); + close(); + } catch (Exception e) { + ErrorFeedback.show("Cannot change password", e); + } } /** Creates label and password. */