From 51111ba53609dfc902cb88663176e2be7b32f27a Mon Sep 17 00:00:00 2001 From: vishwab1 Date: Tue, 14 Apr 2026 20:08:54 +0530 Subject: [PATCH 1/4] feat: grant VOLUNTEER role access to login and registrar-new APIs Allow users with the new Volunteer role (Stop TB serviceline) to authenticate via /user login endpoints and to register new beneficiaries via /registrarBeneficaryRegistrationNew. Mirrors existing ASHA access. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../com/iemr/tm/controller/login/IemrMmuLoginController.java | 2 +- .../iemr/tm/controller/registrar/main/RegistrarController.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/iemr/tm/controller/login/IemrMmuLoginController.java b/src/main/java/com/iemr/tm/controller/login/IemrMmuLoginController.java index eb64b2c5..2faf5dcc 100644 --- a/src/main/java/com/iemr/tm/controller/login/IemrMmuLoginController.java +++ b/src/main/java/com/iemr/tm/controller/login/IemrMmuLoginController.java @@ -46,7 +46,7 @@ @RestController @RequestMapping(value = "/user", headers = "Authorization", consumes = "application/json", produces = "application/json") -@PreAuthorize("hasRole('NURSE') || hasRole('PHARMACIST') || hasRole('LABTECHNICIAN') || hasRole('REGISTRAR') || hasRole('DATASYNC') || hasRole('DATA_SYNC') || hasRole('DOCTOR') || hasRole('LAB_TECHNICIAN') || hasRole('TC_SPECIALIST') || hasRole('ONCOLOGIST') || hasRole('RADIOLOGIST') || hasRole('ASHA')") +@PreAuthorize("hasRole('NURSE') || hasRole('PHARMACIST') || hasRole('LABTECHNICIAN') || hasRole('REGISTRAR') || hasRole('DATASYNC') || hasRole('DATA_SYNC') || hasRole('DOCTOR') || hasRole('LAB_TECHNICIAN') || hasRole('TC_SPECIALIST') || hasRole('ONCOLOGIST') || hasRole('RADIOLOGIST') || hasRole('ASHA') || hasRole('VOLUNTEER')") public class IemrMmuLoginController { private Logger logger = LoggerFactory.getLogger(RegistrarController.class); diff --git a/src/main/java/com/iemr/tm/controller/registrar/main/RegistrarController.java b/src/main/java/com/iemr/tm/controller/registrar/main/RegistrarController.java index 5ddcf7ce..020dde59 100644 --- a/src/main/java/com/iemr/tm/controller/registrar/main/RegistrarController.java +++ b/src/main/java/com/iemr/tm/controller/registrar/main/RegistrarController.java @@ -399,7 +399,7 @@ public String createBeneficiary( // beneficiary registration with common and identity new @Operation(summary = "Register a new beneficiary new API") @PostMapping(value = { "/registrarBeneficaryRegistrationNew" }) - @PreAuthorize("hasRole('NURSE') || hasRole('REGISTRAR') || hasRole('ASHA')") + @PreAuthorize("hasRole('NURSE') || hasRole('REGISTRAR') || hasRole('ASHA') || hasRole('VOLUNTEER')") public String registrarBeneficaryRegistrationNew(@RequestBody String comingReq, @RequestHeader(value = "Authorization") String Authorization) { String s; From 48d7240114a9cceb68077f64f6f3d1ea7de25928 Mon Sep 17 00:00:00 2001 From: vishwab1 Date: Sat, 11 Jul 2026 14:20:12 +0530 Subject: [PATCH 2/4] feat: grant REGISTRATION_OFFICER role access to login and registerNew Confirmed via role trace that userId 4408 (and likely other Registration Officer accounts) was hitting 403 on registrarBeneficaryRegistrationNew because REGISTRATION_OFFICER wasn't in the allowed-roles whitelist. Mirrors the existing ASHA/VOLUNTEER access. Co-Authored-By: Claude Sonnet 5 --- .../com/iemr/tm/controller/login/IemrMmuLoginController.java | 2 +- .../iemr/tm/controller/registrar/main/RegistrarController.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/iemr/tm/controller/login/IemrMmuLoginController.java b/src/main/java/com/iemr/tm/controller/login/IemrMmuLoginController.java index 2faf5dcc..4f4f5947 100644 --- a/src/main/java/com/iemr/tm/controller/login/IemrMmuLoginController.java +++ b/src/main/java/com/iemr/tm/controller/login/IemrMmuLoginController.java @@ -46,7 +46,7 @@ @RestController @RequestMapping(value = "/user", headers = "Authorization", consumes = "application/json", produces = "application/json") -@PreAuthorize("hasRole('NURSE') || hasRole('PHARMACIST') || hasRole('LABTECHNICIAN') || hasRole('REGISTRAR') || hasRole('DATASYNC') || hasRole('DATA_SYNC') || hasRole('DOCTOR') || hasRole('LAB_TECHNICIAN') || hasRole('TC_SPECIALIST') || hasRole('ONCOLOGIST') || hasRole('RADIOLOGIST') || hasRole('ASHA') || hasRole('VOLUNTEER')") +@PreAuthorize("hasRole('NURSE') || hasRole('PHARMACIST') || hasRole('LABTECHNICIAN') || hasRole('REGISTRAR') || hasRole('DATASYNC') || hasRole('DATA_SYNC') || hasRole('DOCTOR') || hasRole('LAB_TECHNICIAN') || hasRole('TC_SPECIALIST') || hasRole('ONCOLOGIST') || hasRole('RADIOLOGIST') || hasRole('ASHA') || hasRole('VOLUNTEER') || hasRole('REGISTRATION_OFFICER')") public class IemrMmuLoginController { private Logger logger = LoggerFactory.getLogger(RegistrarController.class); diff --git a/src/main/java/com/iemr/tm/controller/registrar/main/RegistrarController.java b/src/main/java/com/iemr/tm/controller/registrar/main/RegistrarController.java index 020dde59..fe16cb0f 100644 --- a/src/main/java/com/iemr/tm/controller/registrar/main/RegistrarController.java +++ b/src/main/java/com/iemr/tm/controller/registrar/main/RegistrarController.java @@ -399,7 +399,7 @@ public String createBeneficiary( // beneficiary registration with common and identity new @Operation(summary = "Register a new beneficiary new API") @PostMapping(value = { "/registrarBeneficaryRegistrationNew" }) - @PreAuthorize("hasRole('NURSE') || hasRole('REGISTRAR') || hasRole('ASHA') || hasRole('VOLUNTEER')") + @PreAuthorize("hasRole('NURSE') || hasRole('REGISTRAR') || hasRole('ASHA') || hasRole('VOLUNTEER') || hasRole('REGISTRATION_OFFICER')") public String registrarBeneficaryRegistrationNew(@RequestBody String comingReq, @RequestHeader(value = "Authorization") String Authorization) { String s; From 205b4b448142427149e1c1687296b5d58f22ad66 Mon Sep 17 00:00:00 2001 From: vishwab1 Date: Tue, 14 Jul 2026 13:56:28 +0530 Subject: [PATCH 3/4] Revert "Tuned DB connection pools and enable response compression (#154)" This reverts commit 8894a0e0a1e1ea4ff209b7fef9215198846799d3. --- src/main/resources/application.properties | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 6cc9a11e..b78e589a 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,14 +1,7 @@ -# Response compression — shrinks large JSON responses over the wire without changing the API -# contract; honors the Accept-Encoding: gzip clients already send. -server.compression.enabled=true -server.compression.mime-types=application/json,application/xml,text/html,text/plain,text/css,application/javascript -server.compression.min-response-size=1024 - -spring.datasource.tomcat.initial-size=10 -spring.datasource.tomcat.max-active=100 -spring.datasource.tomcat.max-idle=50 -spring.datasource.tomcat.min-idle=10 - +spring.datasource.tomcat.initial-size=5 +spring.datasource.tomcat.max-active=30 +spring.datasource.tomcat.max-idle=15 +spring.datasource.tomcat.min-idle=5 spring.datasource.tomcat.min-evictable-idle-time-millis=15000 spring.datasource.tomcat.remove-abandoned=true spring.datasource.tomcat.remove-abandoned-timeout=1800 From 1e5bf1f319b00ead5625be20f017c1e21f020d2a Mon Sep 17 00:00:00 2001 From: vishwab1 Date: Tue, 14 Jul 2026 14:09:34 +0530 Subject: [PATCH 4/4] chore: bump version to 3.8.3 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 225cc00a..7075ac9b 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.iemr.tm tm-api - 3.8.2 + 3.8.3 war TM-API