diff --git a/src/main/java/com/iemr/common/controller/users/IEMRAdminController.java b/src/main/java/com/iemr/common/controller/users/IEMRAdminController.java index beba7d2b..6a5d0a31 100644 --- a/src/main/java/com/iemr/common/controller/users/IEMRAdminController.java +++ b/src/main/java/com/iemr/common/controller/users/IEMRAdminController.java @@ -218,7 +218,7 @@ public String userAuthenticate( if (mUser.size() == 1) { String userIdStr = mUser.get(0).getUserID().toString(); jwtToken = isMobile - ? jwtUtil.generateSecureToken(userIdStr) + ? jwtUtil.generateSecureToken(m_User.getUserName(),userIdStr) : jwtUtil.generateToken(m_User.getUserName(), userIdStr); User user = new User(); // Assuming the Users class exists @@ -235,7 +235,7 @@ public String userAuthenticate( ); if (isMobile) { - refreshToken = jwtUtil.generateSecureRefreshToken(user.getUserID().toString()); + refreshToken = jwtUtil.generateSecureRefreshToken(m_User.getUserName(),user.getUserID().toString()); logger.debug("Refresh token generated successfully for user: {}", user.getUserName()); String jti = jwtUtil.getJtiFromToken(refreshToken); redisTemplate.opsForValue().set( @@ -604,7 +604,7 @@ public String superUserAuthenticate( ); if (isMobile) { - refreshToken = jwtUtil.generateSecureRefreshToken(user.getUserID().toString()); + refreshToken = jwtUtil.generateSecureRefreshToken(m_User.getUserName(),user.getUserID().toString()); logger.debug("Refresh token generated successfully for user: {}", user.getUserName()); String jti = jwtUtil.getJtiFromToken(refreshToken); redisTemplate.opsForValue().set( diff --git a/src/main/java/com/iemr/common/data/callhandling/BeneficiaryCall.java b/src/main/java/com/iemr/common/data/callhandling/BeneficiaryCall.java index fd55de84..feae4896 100644 --- a/src/main/java/com/iemr/common/data/callhandling/BeneficiaryCall.java +++ b/src/main/java/com/iemr/common/data/callhandling/BeneficiaryCall.java @@ -234,10 +234,10 @@ public class BeneficiaryCall { @Expose @Column(name = "InsName") private String instName; - + @Transient @Value("${cti-logger_base_url}") private String loggerBaseURL; - + @Transient @Expose private String[] instNames; diff --git a/src/main/java/com/iemr/common/data/dynamic_from/FormFieldOption.java b/src/main/java/com/iemr/common/data/dynamic_from/FormFieldOption.java index 05f06df2..c545be57 100644 --- a/src/main/java/com/iemr/common/data/dynamic_from/FormFieldOption.java +++ b/src/main/java/com/iemr/common/data/dynamic_from/FormFieldOption.java @@ -33,5 +33,8 @@ public class FormFieldOption { @Column(name = "sort_order") private Integer sortOrder; + @Column(name = "owner_module") + private String ownerModule; + // getters/setters } \ No newline at end of file diff --git a/src/main/java/com/iemr/common/service/dynamicForm/FormMasterServiceImpl.java b/src/main/java/com/iemr/common/service/dynamicForm/FormMasterServiceImpl.java index 2861819b..c7804593 100644 --- a/src/main/java/com/iemr/common/service/dynamicForm/FormMasterServiceImpl.java +++ b/src/main/java/com/iemr/common/service/dynamicForm/FormMasterServiceImpl.java @@ -207,6 +207,10 @@ public FormResponseDTO getStructuredFormByFormId(String formId, String lang, Str Map map = new LinkedHashMap<>(); map.put("id", opt.getId()); map.put("value", opt.getValue()); + if(opt.getOwnerModule()!=null && !opt.getOwnerModule().isEmpty()){ + map.put("ownerModule",opt.getOwnerModule()); + + } if ("hi".equalsIgnoreCase(lang)) map.put("label", opt.getLabelHi()); else if ("as".equalsIgnoreCase(lang)) map.put("label", opt.getLabelAs()); else if("en".equals(lang)) map.put("label", opt.getLabelEn()); diff --git a/src/main/java/com/iemr/common/utils/JwtUtil.java b/src/main/java/com/iemr/common/utils/JwtUtil.java index 98ff7b7b..9e85b761 100644 --- a/src/main/java/com/iemr/common/utils/JwtUtil.java +++ b/src/main/java/com/iemr/common/utils/JwtUtil.java @@ -47,17 +47,17 @@ public String generateToken(String username, String userId) { } // Mobile login: token without PII in sub - public String generateSecureToken(String userId) { - return buildSecureToken(userId, "access", ACCESS_EXPIRATION_TIME); + public String generateSecureToken(String username,String userId) { + return buildSecureToken(username, userId, "access", ACCESS_EXPIRATION_TIME); } - public String generateSecureRefreshToken(String userId) { - return buildSecureToken(userId, "refresh", REFRESH_EXPIRATION_TIME); + public String generateSecureRefreshToken(String userName,String userId) { + return buildSecureToken(userName,userId, "refresh", REFRESH_EXPIRATION_TIME); } - private String buildSecureToken(String userId, String tokenType, long expiration) { + private String buildSecureToken(String userName ,String userId, String tokenType, long expiration) { return Jwts.builder() - .subject(userId) + .subject(userName) .claim("userId", userId) .claim("token_type", tokenType) .id(UUID.randomUUID().toString()) diff --git a/src/test/java/com/iemr/common/service/firebaseNotification/FirebaseNotificationServiceTest.java b/src/test/java/com/iemr/common/service/firebaseNotification/FirebaseNotificationServiceTest.java index bf8781ea..38fa22a7 100644 --- a/src/test/java/com/iemr/common/service/firebaseNotification/FirebaseNotificationServiceTest.java +++ b/src/test/java/com/iemr/common/service/firebaseNotification/FirebaseNotificationServiceTest.java @@ -13,6 +13,8 @@ import java.util.Map; import java.util.Optional; +import com.iemr.common.data.userToken.UserFcmTokenData; +import com.iemr.common.repo.userToken.UserFcmTokenRepo; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; @@ -32,10 +34,8 @@ import com.google.firebase.messaging.FirebaseMessaging; import com.google.firebase.messaging.FirebaseMessagingException; import com.google.firebase.messaging.Message; -import com.iemr.common.data.userToken.UserTokenData; import com.iemr.common.model.notification.NotificationMessage; import com.iemr.common.model.notification.UserToken; -import com.iemr.common.repo.userToken.UserTokenRepo; import com.iemr.common.utils.CookieUtil; import com.iemr.common.utils.JwtUtil; @@ -45,7 +45,7 @@ class FirebaseNotificationServiceTest { @Mock - private UserTokenRepo userTokenRepo; + private UserFcmTokenRepo userTokenRepo; @Mock private CookieUtil cookieUtil; @Mock @@ -56,7 +56,6 @@ class FirebaseNotificationServiceTest { @BeforeEach void setUp() { service = new FirebaseNotificationService(); - ReflectionTestUtils.setField(service, "userTokenRepo", userTokenRepo); ReflectionTestUtils.setField(service, "cookieUtil", cookieUtil); ReflectionTestUtils.setField(service, "jwtUtil", jwtUtil); } @@ -113,7 +112,7 @@ void deliveryFailureIsReported() throws Exception { @Test @DisplayName("an existing device token is updated in place") void existingTokenIsUpdated() { - UserTokenData existing = new UserTokenData(); + UserFcmTokenData existing = new UserFcmTokenData(); existing.setUserId(7); existing.setToken("old-token"); when(userTokenRepo.findById(7)).thenReturn(Optional.of(existing)); @@ -124,7 +123,7 @@ void existingTokenIsUpdated() { assertThat(service.updateToken(userToken)).isEqualTo("Save Successfully"); - ArgumentCaptor captor = ArgumentCaptor.forClass(UserTokenData.class); + ArgumentCaptor captor = ArgumentCaptor.forClass(UserFcmTokenData.class); verify(userTokenRepo).save(captor.capture()); assertThat(captor.getValue()).isSameAs(existing); assertThat(captor.getValue().getToken()).isEqualTo("new-token"); @@ -142,7 +141,7 @@ void newTokenIsCreated() { assertThat(service.updateToken(userToken)).isEqualTo("Save Successfully"); - ArgumentCaptor captor = ArgumentCaptor.forClass(UserTokenData.class); + ArgumentCaptor captor = ArgumentCaptor.forClass(UserFcmTokenData.class); verify(userTokenRepo).save(captor.capture()); assertThat(captor.getValue().getUserId()).isEqualTo(8); assertThat(captor.getValue().getToken()).isEqualTo("fresh-token"); @@ -154,7 +153,7 @@ void storedTokenIsResolvedFromTheJwtCookie() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest(); RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(request)); when(jwtUtil.getUserIdFromToken("jwt-value")).thenReturn("11"); - UserTokenData stored = new UserTokenData(); + UserFcmTokenData stored = new UserFcmTokenData(); stored.setToken("device-token"); when(userTokenRepo.findById(11)).thenReturn(Optional.of(stored)); diff --git a/src/test/java/com/iemr/common/utils/JwtUtilTest.java b/src/test/java/com/iemr/common/utils/JwtUtilTest.java index 6bb2ea50..3d04ded8 100644 --- a/src/test/java/com/iemr/common/utils/JwtUtilTest.java +++ b/src/test/java/com/iemr/common/utils/JwtUtilTest.java @@ -95,7 +95,7 @@ void refreshTokenIsMarked() { @Test @DisplayName("a secure token uses the user id as its subject") void secureTokenSubjectIsTheUserId() { - Claims claims = jwtUtil.getAllClaimsFromToken(jwtUtil.generateSecureToken("42")); + Claims claims = jwtUtil.getAllClaimsFromToken(jwtUtil.generateSecureToken("","42")); assertThat(claims.getSubject()).isEqualTo("42"); assertThat(claims.get("token_type", String.class)).isEqualTo("access"); @@ -104,7 +104,7 @@ void secureTokenSubjectIsTheUserId() { @Test @DisplayName("a secure refresh token uses the user id as its subject") void secureRefreshTokenSubjectIsTheUserId() { - Claims claims = jwtUtil.getAllClaimsFromToken(jwtUtil.generateSecureRefreshToken("42")); + Claims claims = jwtUtil.getAllClaimsFromToken(jwtUtil.generateSecureToken("","42")); assertThat(claims.getSubject()).isEqualTo("42"); assertThat(claims.get("token_type", String.class)).isEqualTo("refresh");