X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms.e4%2Fsrc%2Forg%2Fargeo%2Fcms%2Fe4%2Fhandlers%2FChangePassword.java;h=1d3bab9f81e7a2dfb8112171512c64f919abdc8d;hb=b7683883512d924a039a43c2e1102290aa49f64d;hp=378409399eae05c5a384e5fe1d73eb2dbfabba0f;hpb=9eaf85002b003a68eea81fca417465ba52f14e4e;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms.e4/src/org/argeo/cms/e4/handlers/ChangePassword.java b/org.argeo.cms.e4/src/org/argeo/cms/e4/handlers/ChangePassword.java index 378409399..1d3bab9f8 100644 --- a/org.argeo.cms.e4/src/org/argeo/cms/e4/handlers/ChangePassword.java +++ b/org.argeo.cms.e4/src/org/argeo/cms/e4/handlers/ChangePassword.java @@ -6,24 +6,22 @@ import static org.argeo.cms.CmsMsg.newPassword; import static org.argeo.cms.CmsMsg.passwordChanged; import static org.argeo.cms.CmsMsg.repeatNewPassword; -import java.security.AccessController; import java.util.Arrays; import javax.inject.Inject; import javax.naming.InvalidNameException; import javax.naming.ldap.LdapName; -import javax.security.auth.Subject; -import javax.security.auth.x500.X500Principal; -import javax.transaction.UserTransaction; +import org.argeo.api.security.CryptoKeyring; import org.argeo.cms.CmsException; -import org.argeo.cms.ui.dialogs.CmsMessageDialog; +import org.argeo.cms.auth.CurrentUser; +import org.argeo.cms.swt.dialogs.CmsMessageDialog; import org.argeo.eclipse.ui.dialogs.ErrorFeedback; -import org.argeo.node.security.CryptoKeyring; +import org.argeo.osgi.transaction.WorkTransaction; import org.eclipse.e4.core.di.annotations.Execute; +import org.eclipse.e4.core.di.annotations.Optional; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.swt.SWT; -import org.eclipse.swt.graphics.Point; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; @@ -35,12 +33,14 @@ import org.eclipse.swt.widgets.Text; import org.osgi.service.useradmin.User; import org.osgi.service.useradmin.UserAdmin; +/** Change the password of the logged-in user. */ public class ChangePassword { @Inject private UserAdmin userAdmin; @Inject - private UserTransaction userTransaction; + private WorkTransaction userTransaction; @Inject + @Optional private CryptoKeyring keyring = null; @Execute @@ -53,8 +53,7 @@ public class ChangePassword { } protected void changePassword(char[] oldPassword, char[] newPassword) { - Subject subject = Subject.getSubject(AccessController.getContext()); - String name = subject.getPrincipals(X500Principal.class).iterator().next().toString(); + String name = CurrentUser.getUsername(); LdapName dn; try { dn = new LdapName(name); @@ -94,9 +93,9 @@ public class ChangePassword { super(parentShell, changePassword.lead(), CONFIRM); } - protected Point getInitialSize() { - return new Point(400, 450); - } +// protected Point getInitialSize() { +// return new Point(400, 450); +// } protected Control createDialogArea(Composite parent) { Composite dialogarea = (Composite) super.createDialogArea(parent); @@ -108,7 +107,7 @@ public class ChangePassword { newPassword1 = createLP(composite, newPassword.lead()); newPassword2 = createLP(composite, repeatNewPassword.lead()); - parent.pack(); +// parent.pack(); oldPassword.setFocus(); return composite; }