diff --git a/auth_service/src/main/java/vacademy/io/auth_service/feature/user/service/InviteUserEmailBody.java b/auth_service/src/main/java/vacademy/io/auth_service/feature/user/service/InviteUserEmailBody.java index 7109de7cd2..438940fb08 100644 --- a/auth_service/src/main/java/vacademy/io/auth_service/feature/user/service/InviteUserEmailBody.java +++ b/auth_service/src/main/java/vacademy/io/auth_service/feature/user/service/InviteUserEmailBody.java @@ -1,14 +1,8 @@ package vacademy.io.auth_service.feature.user.service; import java.util.List; -import org.springframework.beans.factory.annotation.Value; public class InviteUserEmailBody { - @Value("${teacher.portal.client.url}:https://dash.vacademy.io") - private static String adminPortalClientUrl; - - public static final String ADMIN_LOGIN_URL = adminPortalClientUrl + "/login"; - public static String createInviteUserEmail( String name, String username, @@ -97,7 +91,7 @@ public static String createInviteUserEmail( """.formatted(themeColor, name, username, password, rolesFormatted, adminLoginUrl,instituteName); } - public static String createReminderEmail(String name, String username, String password, List roles) { + public static String createReminderEmail(String name, String username, String password, List roles, String adminLoginUrl) { String rolesFormatted = String.join(", ", roles); return """ @@ -191,6 +185,6 @@ public static String createReminderEmail(String name, String username, String pa - """.formatted(name, username, password, rolesFormatted, ADMIN_LOGIN_URL); + """.formatted(name, username, password, rolesFormatted, adminLoginUrl); } } diff --git a/auth_service/src/main/java/vacademy/io/auth_service/feature/user/service/InviteUserService.java b/auth_service/src/main/java/vacademy/io/auth_service/feature/user/service/InviteUserService.java index 4e7c957d73..8177677aa2 100644 --- a/auth_service/src/main/java/vacademy/io/auth_service/feature/user/service/InviteUserService.java +++ b/auth_service/src/main/java/vacademy/io/auth_service/feature/user/service/InviteUserService.java @@ -86,8 +86,8 @@ private void sendInvitationEmail(UserDTO userDTO, String instituteId) { instituteName=instituteInfoDTO.getInstituteName(); if(instituteInfoDTO.getInstituteThemeCode()!=null) theme=instituteInfoDTO.getInstituteThemeCode(); - if(instituteInfoDTO.getLearnerPortalUrl()!=null) - adminLoginUrl=instituteInfoDTO.getAdminPortalUrl(); + if(StringUtils.hasText(instituteInfoDTO.getAdminPortalUrl())) + adminLoginUrl=normalizeUrl(instituteInfoDTO.getAdminPortalUrl()); } GenericEmailRequest emailRequest = createEmailRequest( userDTO.getEmail(), "Invitation Mail", @@ -102,15 +102,26 @@ private void sendReminderEmail(User user) { if (user.getRoles() != null && !user.getRoles().isEmpty()) { instituteId = user.getRoles().iterator().next().getInstituteId(); } - + + String adminLoginUrl = "https://dash.vacademy.io"; + if (StringUtils.hasText(instituteId)) { + InstituteInfoDTO instituteInfoDTO = instituteInternalService.getInstituteByInstituteId(instituteId); + if (instituteInfoDTO != null && StringUtils.hasText(instituteInfoDTO.getAdminPortalUrl())) + adminLoginUrl = normalizeUrl(instituteInfoDTO.getAdminPortalUrl()); + } + GenericEmailRequest emailRequest = createEmailRequest( user.getEmail(), "Invitation Reminder Mail", InviteUserEmailBody.createReminderEmail( - user.getFullName(), user.getUsername(), user.getPassword(), getUserRoleNames(user)) + user.getFullName(), user.getUsername(), user.getPassword(), getUserRoleNames(user), adminLoginUrl) ); notificationService.sendGenericHtmlMailViaUnified(emailRequest, instituteId); } + private String normalizeUrl(String url) { + return url.startsWith("http") ? url : "https://" + url; + } + private ModifyUserRolesDTO createModifyRolesDTO(String userId, String instituteId, List roles) { ModifyUserRolesDTO modifyUserRolesDTO = new ModifyUserRolesDTO(); modifyUserRolesDTO.setUserId(userId);