Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,10 @@
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring6</artifactId>
</dependency>
<dependency>
<groupId>com.google.truth</groupId>
<artifactId>truth</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.Locale;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
Expand Down Expand Up @@ -81,6 +82,8 @@
import org.apache.fineract.useradministration.domain.RoleRepository;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.apache.fineract.useradministration.exception.RoleNotFoundException;
import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.core.env.Environment;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.dao.EmptyResultDataAccessException;
Expand All @@ -95,10 +98,8 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.TransactionSynchronization;
import org.springframework.transaction.support.TransactionSynchronizationManager;
import org.apache.fineract.portfolio.client.service.ClientWritePlatformService;
import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;
import org.apache.fineract.portfolio.client.service.ClientWritePlatformService;
import org.thymeleaf.ITemplateEngine;
import org.thymeleaf.context.Context;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,18 +37,18 @@
import org.apache.fineract.infrastructure.security.service.PlatformPasswordEncoder;
import org.apache.fineract.selfservice.registration.service.SelfServiceAuthorizationTokenService;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;

import org.apache.fineract.useradministration.domain.AppUserRepository;
import org.springframework.context.MessageSource;
import org.springframework.context.support.ResourceBundleMessageSource;
import org.springframework.core.env.Environment;
import org.springframework.jdbc.core.JdbcTemplate;
import org.thymeleaf.spring6.SpringTemplateEngine;
import org.thymeleaf.templatemode.TemplateMode;
import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;

import org.apache.fineract.useradministration.domain.AppUserRepository;
import org.springframework.core.env.Environment;

@Configuration
public class SelfRegistrationConfiguration {

Expand All @@ -58,6 +58,11 @@ public SelfServiceRegistrationReadPlatformService selfServiceRegistrationReadPla
return new SelfServiceRegistrationReadPlatformServiceImpl(jdbcTemplate);
}

/**
* Provides localized message bundles for registration notifications.
*
* @return configured registration message source
*/
@Bean
@ConditionalOnMissingBean(SelfServiceAuthorizationTokenService.class)
public SelfServiceAuthorizationTokenService selfServiceAuthorizationTokenService(Environment env) {
Expand Down Expand Up @@ -95,7 +100,6 @@ public SpringTemplateEngine registrationTemplateEngine() {
@Bean
@ConditionalOnMissingBean(SelfServiceRegistrationWritePlatformService.class)
public SelfServiceRegistrationWritePlatformService selfServiceRegistrationWritePlatformService(

SelfServiceRegistrationRepository selfServiceRegistrationRepository, FromJsonHelper fromApiJsonHelper,
SelfServiceRegistrationReadPlatformService selfServiceRegistrationReadPlatformService, ClientRepositoryWrapper clientRepository,
PasswordValidationPolicyRepository passwordValidationPolicy, SelfServiceUserDomainService userDomainService,
Expand All @@ -111,12 +115,12 @@ public SelfServiceRegistrationWritePlatformService selfServiceRegistrationWriteP
return new SelfServiceRegistrationWritePlatformServiceImpl(selfServiceRegistrationRepository, fromApiJsonHelper,
selfServiceRegistrationReadPlatformService, clientRepository, passwordValidationPolicy, userDomainService,
gmailBackedPlatformEmailService, smsMessageRepository, smsMessageScheduledJobService,
smsCampaignDropdownReadPlatformService, appUserReadPlatformService, roleRepository, appUserClientMappingRepository,
jdbcTemplate, appUserRepository, clientWritePlatformService, env, platformPasswordEncoder, appSelfServiceUserRepository,
selfServiceAuthorizationTokenService, registrationTemplateEngine(), registrationMessageSource());
smsCampaignDropdownReadPlatformService, appUserReadPlatformService, roleRepository, appUserClientMappingRepository,
jdbcTemplate, appUserRepository, clientWritePlatformService, env, platformPasswordEncoder, appSelfServiceUserRepository,
selfServiceAuthorizationTokenService, registrationTemplateEngine(), registrationMessageSource());
}
@Bean

@Bean
@ConditionalOnMissingBean(SelfServiceForgotPassworWritePlatformService.class)
public SelfServiceForgotPassworWritePlatformService selfServiceForgotPassworWritePlatformService(

Expand All @@ -128,15 +132,15 @@ public SelfServiceForgotPassworWritePlatformService selfServiceForgotPassworWrit
SmsCampaignDropdownReadPlatformService smsCampaignDropdownReadPlatformService,
AppSelfServiceUserReadPlatformService appUserReadPlatformService, RoleRepository roleRepository,
AppSelfServiceUserClientMappingRepository appUserClientMappingRepository,
JdbcTemplate jdbcTemplate, AppUserRepository appUserRepository,
JdbcTemplate jdbcTemplate, AppUserRepository appUserRepository,
Environment env,
PlatformPasswordEncoder platformPasswordEncoder, AppSelfServiceUserRepository appSelfServiceUserRepository,
SelfServiceAuthorizationTokenService selfServiceAuthorizationTokenService) {
return new SelfServiceForgotPasswordWritePlatformServiceImpl(selfServiceRegistrationRepository, fromApiJsonHelper,
selfServiceRegistrationReadPlatformService, clientRepository, passwordValidationPolicy, userDomainService,
gmailBackedPlatformEmailService, smsMessageRepository, smsMessageScheduledJobService,
smsCampaignDropdownReadPlatformService, appUserReadPlatformService, roleRepository, appUserClientMappingRepository,
jdbcTemplate, appUserRepository, env, platformPasswordEncoder, appSelfServiceUserRepository,
selfServiceAuthorizationTokenService);
smsCampaignDropdownReadPlatformService, appUserReadPlatformService, roleRepository, appUserClientMappingRepository,
jdbcTemplate, appUserRepository, env, platformPasswordEncoder, appSelfServiceUserRepository,
selfServiceAuthorizationTokenService);
}
}
3 changes: 2 additions & 1 deletion src/main/resources/i18n/messages.properties
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ email.requestId=Request ID
email.authCode=Authorization Code
email.regards=Regards,

sms.message=Hello {0},\n\nTo create a user, use the following details:\nRequest ID: {1}\nAuthorization Code: {2}
sms.message=Hello {0},\n\nTo create a user, use the following details:\nRequest ID: {1}\nAuthorization Code: {2}
sms.message=Hello {0},\n\nTo create a user, use the following details:\nRequest ID: {1}\nAuthorization Code: {2}
3 changes: 2 additions & 1 deletion src/main/resources/i18n/messages_es.properties
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ email.requestId=Id de Petici\u00f3n
email.authCode=C\u00f3digo de Autorizaci\u00f3n
email.regards=Saludos,

sms.message=Hola {0},\n\nPara crear un usuario, utilice los siguientes datos:\nId de Petici\u00f3n: {1}\nC\u00f3digo de Autorizaci\u00f3n: {2}
sms.message=Hola {0},\n\nPara crear un usuario, utilice los siguientes datos:\nId de Petici\u00f3n: {1}\nC\u00f3digo de Autorizaci\u00f3n: {2}
sms.message=Hola {0},\n\nPara crear un usuario, utilice los siguientes datos:\nId de Petici\u00f3n: {1}\nC\u00f3digo de Autorizaci\u00f3n: {2}
2 changes: 1 addition & 1 deletion src/main/resources/mail-templates/authorization-email.html
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@
<br/>
<p th:text="#{email.regards}"></p>
</body>
</html>
</html>
Original file line number Diff line number Diff line change
Expand Up @@ -46,18 +46,18 @@
import org.apache.fineract.useradministration.domain.Role;
import org.apache.fineract.useradministration.domain.RoleRepository;
import org.apache.fineract.infrastructure.security.service.PlatformPasswordEncoder;
import org.springframework.jdbc.core.JdbcTemplate;
import org.apache.fineract.useradministration.domain.AppUserRepository;
import org.apache.fineract.portfolio.client.service.ClientWritePlatformService;
import org.springframework.core.env.Environment;
import org.apache.fineract.useradministration.domain.AppUserRepository;
import org.junit.jupiter.api.AfterEach;
import org.springframework.context.MessageSource;
import org.springframework.core.env.Environment;
import org.springframework.jdbc.core.JdbcTemplate;
import org.thymeleaf.ITemplateEngine;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.context.MessageSource;
import org.thymeleaf.ITemplateEngine;

@ExtendWith(MockitoExtension.class)
@SuppressWarnings("unchecked")
Expand All @@ -83,10 +83,7 @@ class SelfServiceRegistrationWritePlatformServiceImplTest {
@Mock private PlatformPasswordEncoder platformPasswordEncoder;
@Mock private AppSelfServiceUserRepository appSelfServiceUserRepository;
@Mock private SelfServiceAuthorizationTokenService selfServiceAuthorizationTokenService;
//@Mock private SpringTemplateEngine registrationTemplateEngine;
// To this:
@Mock
private ITemplateEngine registrationTemplateEngine;
@Mock private ITemplateEngine registrationTemplateEngine;
@Mock private MessageSource registrationMessageSource;

private SelfServiceRegistrationWritePlatformServiceImpl service;
Expand Down