You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2019/12/21 12:23:28 UTC
[isis] branch master updated: ISIS-2158: wicket: remove injection
points from PasswordResetEmailPanel
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new 01f889e ISIS-2158: wicket: remove injection points from PasswordResetEmailPanel
01f889e is described below
commit 01f889ec96bc7df188a0643cdcf1fd1a0e38129b
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sat Dec 21 13:23:19 2019 +0100
ISIS-2158: wicket: remove injection points from PasswordResetEmailPanel
---
.../password_reset/PasswordResetEmailPanel.java | 78 +++++++++-------------
.../isis/viewer/wicket/ui/panels/PanelBase.java | 18 +++++
.../extensions/restclient/RestfulClientConfig.java | 53 +--------------
3 files changed, 54 insertions(+), 95 deletions(-)
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/password_reset/PasswordResetEmailPanel.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/password_reset/PasswordResetEmailPanel.java
index d791d3d..23a455f 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/password_reset/PasswordResetEmailPanel.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/password_reset/PasswordResetEmailPanel.java
@@ -22,8 +22,6 @@ package org.apache.isis.viewer.wicket.ui.pages.accmngt.password_reset;
import java.util.HashMap;
import java.util.Map;
-import javax.inject.Inject;
-
import org.apache.wicket.markup.html.form.Button;
import org.apache.wicket.markup.html.form.RequiredTextField;
import org.apache.wicket.markup.html.form.StatelessForm;
@@ -33,16 +31,15 @@ import org.apache.wicket.model.ResourceModel;
import org.apache.wicket.util.cookies.CookieUtils;
import org.apache.wicket.validation.validator.EmailAddressValidator;
-import org.apache.isis.applib.services.userreg.EmailNotificationService;
import org.apache.isis.applib.services.userreg.events.PasswordResetEvent;
import org.apache.isis.viewer.wicket.model.models.PageType;
import org.apache.isis.viewer.wicket.ui.components.widgets.bootstrap.FormGroup;
-import org.apache.isis.viewer.wicket.ui.pages.EmailVerificationUrlService;
-import org.apache.isis.viewer.wicket.ui.pages.PageNavigationService;
import org.apache.isis.viewer.wicket.ui.pages.accmngt.AccountManagementPageAbstract;
import org.apache.isis.viewer.wicket.ui.pages.accmngt.EmailAvailableValidator;
import org.apache.isis.viewer.wicket.ui.panels.PanelBase;
+import lombok.val;
+
/**
* A panel with a form for creation of new users
*/
@@ -50,11 +47,6 @@ public class PasswordResetEmailPanel extends PanelBase<Void> {
private static final long serialVersionUID = 1L;
- @Inject private transient EmailNotificationService emailNotificationService;
- @Inject private transient EmailVerificationUrlService emailVerificationUrlService;
- @Inject private transient PageNavigationService pageNavigationService;
-// @Inject private transient WebAppConfigBean webAppConfigBean;
-
/**
* Constructor
*
@@ -64,61 +56,57 @@ public class PasswordResetEmailPanel extends PanelBase<Void> {
public PasswordResetEmailPanel(final String id) {
super(id);
- StatelessForm<Void> form = new StatelessForm<>("signUpForm");
+ val form = new StatelessForm<Void>("signUpForm");
addOrReplace(form);
- final RequiredTextField<String> emailField = new RequiredTextField<>("email", Model.of(""));
+ val emailField = new RequiredTextField<String>("email", Model.of(""));
emailField.setLabel(new ResourceModel("emailLabel"));
emailField.add(EmailAddressValidator.getInstance());
emailField.add(EmailAvailableValidator.exists(getCommonContext()));
- FormGroup formGroup = new FormGroup("formGroup", emailField);
+ val formGroup = new FormGroup("formGroup", emailField);
form.add(formGroup);
formGroup.add(emailField);
- Button signUpButton = new Button("passwordResetSubmit") {
+ val signUpButton = new Button("passwordResetSubmit") {
+
private static final long serialVersionUID = 1L;
+ private final RequiredTextField<String> _emailField = emailField;
@Override
public void onSubmit() {
super.onSubmit();
-
- String email = emailField.getModelObject();
-
- String confirmationUrl = emailVerificationUrlService.createVerificationUrl(PageType.PASSWORD_RESET, email);
-
- //TODO [2033] remove ...
- // /**
- // * We have to init() the services here because the Isis runtime is not available to us
- // * (guice will have instantiated a new instance of the service).
- // *
- // * We do it this way just so that the programming model for the EmailService is similar to regular Isis-managed services.
- // */
- // emailNotificationService.init();
- // emailService.init();
-
- final PasswordResetEvent passwordResetEvent = new PasswordResetEvent(
- email,
- confirmationUrl,
- getWebAppConfigBean().getApplicationName());
-
- boolean emailSent = emailNotificationService.send(passwordResetEvent);
- if (emailSent) {
- Map<String, String> map = new HashMap<>();
- map.put("email", email);
- IModel<Map<String, String>> model = Model.ofMap(map);
- String emailSentMessage = getString("emailSentMessage", model);
-
- CookieUtils cookieUtils = new CookieUtils();
- cookieUtils.save(AccountManagementPageAbstract.FEEDBACK_COOKIE_NAME, emailSentMessage);
- pageNavigationService.navigateTo(PageType.SIGN_IN);
- }
+ passwordResetSubmit(_emailField);
}
};
form.add(signUpButton);
}
+
+ private void passwordResetSubmit(final RequiredTextField<String> emailField) {
+
+ String email = emailField.getModelObject();
+
+ String confirmationUrl = super.getEmailVerificationUrlService().createVerificationUrl(PageType.PASSWORD_RESET, email);
+
+ val passwordResetEvent = new PasswordResetEvent(
+ email,
+ confirmationUrl,
+ getWebAppConfigBean().getApplicationName());
+
+ boolean emailSent = super.getEmailNotificationService().send(passwordResetEvent);
+ if (emailSent) {
+ Map<String, String> map = new HashMap<>();
+ map.put("email", email);
+ IModel<Map<String, String>> model = Model.ofMap(map);
+ String emailSentMessage = getString("emailSentMessage", model);
+
+ CookieUtils cookieUtils = new CookieUtils();
+ cookieUtils.save(AccountManagementPageAbstract.FEEDBACK_COOKIE_NAME, emailSentMessage);
+ super.getPageNavigationService().navigateTo(PageType.SIGN_IN);
+ }
+ }
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelBase.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelBase.java
index 0c45d21..8678e98 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelBase.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelBase.java
@@ -27,6 +27,7 @@ import org.apache.wicket.model.IModel;
import org.apache.isis.applib.services.i18n.LocaleProvider;
import org.apache.isis.applib.services.i18n.TranslationService;
+import org.apache.isis.applib.services.userreg.EmailNotificationService;
import org.apache.isis.config.viewer.wicket.WebAppConfiguration;
import org.apache.isis.metamodel.context.MetaModelContext;
import org.apache.isis.runtime.session.IsisSessionFactory;
@@ -39,7 +40,9 @@ import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistryAccessor;
import org.apache.isis.viewer.wicket.ui.components.tree.themes.TreeThemeProvider;
import org.apache.isis.viewer.wicket.ui.components.tree.themes.TreeThemeProviderDefault;
+import org.apache.isis.viewer.wicket.ui.pages.EmailVerificationUrlService;
import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistry;
+import org.apache.isis.viewer.wicket.ui.pages.PageNavigationService;
import org.apache.isis.webapp.context.IsisWebAppCommonContext;
/**
@@ -60,6 +63,9 @@ public class PanelBase<T> extends GenericPanel<T> implements IsisWebAppCommonCon
private transient TranslationService translationService;
private transient LocaleProvider localeProvider;
private transient TreeThemeProvider treeThemeProvider;
+ private transient EmailNotificationService emailNotificationService;
+ private transient EmailVerificationUrlService emailVerificationUrlService;
+ private transient PageNavigationService pageNavigationService;
protected PanelBase(String id) {
this(id, null);
@@ -111,6 +117,18 @@ public class PanelBase<T> extends GenericPanel<T> implements IsisWebAppCommonCon
return treeThemeProvider = computeIfAbsentOrFallback(TreeThemeProvider.class, treeThemeProvider, TreeThemeProviderDefault::new);
}
+ protected EmailNotificationService getEmailNotificationService() {
+ return emailNotificationService = computeIfAbsent(EmailNotificationService.class, emailNotificationService);
+ }
+
+ protected EmailVerificationUrlService getEmailVerificationUrlService() {
+ return emailVerificationUrlService = computeIfAbsent(EmailVerificationUrlService.class, emailVerificationUrlService);
+ }
+
+ protected PageNavigationService getPageNavigationService() {
+ return pageNavigationService = computeIfAbsent(PageNavigationService.class, pageNavigationService);
+ }
+
protected MessageBroker getMessageBroker() {
return commonContext.getAuthenticationSession().getMessageBroker(); // don't cache?
}
diff --git a/extensions/vro/restclient/src/main/java/org/apache/isis/extensions/restclient/RestfulClientConfig.java b/extensions/vro/restclient/src/main/java/org/apache/isis/extensions/restclient/RestfulClientConfig.java
index a35e1f3..30d1b54 100644
--- a/extensions/vro/restclient/src/main/java/org/apache/isis/extensions/restclient/RestfulClientConfig.java
+++ b/extensions/vro/restclient/src/main/java/org/apache/isis/extensions/restclient/RestfulClientConfig.java
@@ -23,77 +23,30 @@ import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
+import lombok.Data;
+
/**
*
* @since 2.0
*/
@XmlRootElement(name="restful-client-config")
@XmlAccessorType(XmlAccessType.FIELD)
+@Data
public class RestfulClientConfig {
- // --
-
@XmlElement(name="restfulBase")
private String restfulBase;
- public String getRestfulBase() {
- return restfulBase;
- }
-
- public void setRestfulBase(String restfulBase) {
- this.restfulBase = restfulBase;
- }
-
- // --
-
@XmlElement(name="useBasicAuth")
private boolean useBasicAuth;
- public boolean isUseBasicAuth() {
- return useBasicAuth;
- }
-
- public void setUseBasicAuth(boolean useBasicAuth) {
- this.useBasicAuth = useBasicAuth;
- }
-
- // --
-
@XmlElement(name="restfulAuthUser")
private String restfulAuthUser;
- public String getRestfulAuthUser() {
- return restfulAuthUser;
- }
-
- public void setRestfulAuthUser(String restfulAuthUser) {
- this.restfulAuthUser = restfulAuthUser;
- }
-
- // --
-
@XmlElement(name="restfulAuthPassword")
private String restfulAuthPassword;
- public String getRestfulAuthPassword() {
- return restfulAuthPassword;
- }
-
- public void setRestfulAuthPassword(String restfulAuthPassword) {
- this.restfulAuthPassword = restfulAuthPassword;
- }
-
- // --
-
@XmlElement(name="useRequestDebugLogging")
private boolean useRequestDebugLogging;
- public boolean isUseRequestDebugLogging() {
- return useRequestDebugLogging;
- }
-
- public void setUseRequestDebugLogging(boolean useRequestDebugLogging) {
- this.useRequestDebugLogging = useRequestDebugLogging;
- }
-
}