You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2023/02/21 01:16:09 UTC
[james-project] 06/09: JAMES-3885 Guice bindings for username change
This is an automated email from the ASF dual-hosted git repository.
btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 2964c3a49376b1c344b669ef47ed83dbad72b4e2
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Thu Feb 16 15:36:29 2023 +0700
JAMES-3885 Guice bindings for username change
---
.../main/java/org/apache/james/CoreDataModule.java | 4 +++
.../james/modules/server/DataRoutesModules.java | 30 ++++++++++++++++++++++
2 files changed, 34 insertions(+)
diff --git a/server/container/guice/common/src/main/java/org/apache/james/CoreDataModule.java b/server/container/guice/common/src/main/java/org/apache/james/CoreDataModule.java
index 6657b551c4..7ee574f0b6 100644
--- a/server/container/guice/common/src/main/java/org/apache/james/CoreDataModule.java
+++ b/server/container/guice/common/src/main/java/org/apache/james/CoreDataModule.java
@@ -23,7 +23,9 @@ import java.util.Set;
import org.apache.commons.configuration2.ex.ConfigurationException;
import org.apache.james.domainlist.lib.DomainListConfiguration;
+import org.apache.james.rrt.ForwardUsernameChangeTaskStep;
import org.apache.james.server.core.configuration.ConfigurationProvider;
+import org.apache.james.user.api.UsernameChangeTaskStep;
import com.google.inject.AbstractModule;
import com.google.inject.Provides;
@@ -35,6 +37,8 @@ public class CoreDataModule extends AbstractModule {
protected void configure() {
Multibinder.newSetBinder(binder(), UserEntityValidator.class).addBinding().to(DefaultUserEntityValidator.class);
Multibinder.newSetBinder(binder(), UserEntityValidator.class).addBinding().to(RecipientRewriteTableUserEntityValidator.class);
+
+ Multibinder.newSetBinder(binder(), UsernameChangeTaskStep.class).addBinding().to(ForwardUsernameChangeTaskStep.class);
}
@Provides
diff --git a/server/container/guice/protocols/webadmin-data/src/main/java/org/apache/james/modules/server/DataRoutesModules.java b/server/container/guice/protocols/webadmin-data/src/main/java/org/apache/james/modules/server/DataRoutesModules.java
index 101426401a..fd64948fd5 100644
--- a/server/container/guice/protocols/webadmin-data/src/main/java/org/apache/james/modules/server/DataRoutesModules.java
+++ b/server/container/guice/protocols/webadmin-data/src/main/java/org/apache/james/modules/server/DataRoutesModules.java
@@ -19,7 +19,14 @@
package org.apache.james.modules.server;
+import org.apache.james.server.task.json.dto.AdditionalInformationDTO;
+import org.apache.james.server.task.json.dto.AdditionalInformationDTOModule;
+import org.apache.james.server.task.json.dto.TaskDTO;
+import org.apache.james.server.task.json.dto.TaskDTOModule;
+import org.apache.james.task.Task;
+import org.apache.james.task.TaskExecutionDetails;
import org.apache.james.webadmin.Routes;
+import org.apache.james.webadmin.dto.DTOModuleInjections;
import org.apache.james.webadmin.dto.MappingSourceModule;
import org.apache.james.webadmin.mdc.RequestLogger;
import org.apache.james.webadmin.routes.AddressMappingRoutes;
@@ -32,10 +39,16 @@ import org.apache.james.webadmin.routes.MappingRoutes;
import org.apache.james.webadmin.routes.RegexMappingRoutes;
import org.apache.james.webadmin.routes.UserCreationRequestLogger;
import org.apache.james.webadmin.routes.UserRoutes;
+import org.apache.james.webadmin.routes.UsernameChangeRoutes;
+import org.apache.james.webadmin.service.UsernameChangeService;
+import org.apache.james.webadmin.service.UsernameChangeTaskAdditionalInformationDTO;
+import org.apache.james.webadmin.service.UsernameChangeTaskDTO;
import org.apache.james.webadmin.utils.JsonTransformerModule;
import com.google.inject.AbstractModule;
import com.google.inject.multibindings.Multibinder;
+import com.google.inject.multibindings.ProvidesIntoSet;
+import com.google.inject.name.Named;
public class DataRoutesModules extends AbstractModule {
@@ -51,10 +64,27 @@ public class DataRoutesModules extends AbstractModule {
routesMultibinder.addBinding().to(MappingRoutes.class);
routesMultibinder.addBinding().to(RegexMappingRoutes.class);
routesMultibinder.addBinding().to(UserRoutes.class);
+ routesMultibinder.addBinding().to(UsernameChangeRoutes.class);
Multibinder<JsonTransformerModule> jsonTransformerModuleMultibinder = Multibinder.newSetBinder(binder(), JsonTransformerModule.class);
jsonTransformerModuleMultibinder.addBinding().to(MappingSourceModule.class);
Multibinder.newSetBinder(binder(), RequestLogger.class).addBinding().to(UserCreationRequestLogger.class);
}
+
+ @ProvidesIntoSet
+ public TaskDTOModule<? extends Task, ? extends TaskDTO> usernameChangeTaskDTO(UsernameChangeService service) {
+ return UsernameChangeTaskDTO.module(service);
+ }
+
+ @ProvidesIntoSet
+ public AdditionalInformationDTOModule<? extends TaskExecutionDetails.AdditionalInformation, ? extends AdditionalInformationDTO> usernameChangeTaskAdditionalInformationDTO() {
+ return UsernameChangeTaskAdditionalInformationDTO.module();
+ }
+
+ @Named(DTOModuleInjections.WEBADMIN_DTO)
+ @ProvidesIntoSet
+ public AdditionalInformationDTOModule<? extends TaskExecutionDetails.AdditionalInformation, ? extends AdditionalInformationDTO> webAdminUsernameChangeTaskAdditionalInformationDTO() {
+ return UsernameChangeTaskAdditionalInformationDTO.module();
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org