diff --git a/src/main/java/stirling/software/SPDF/controller/api/UserController.java b/src/main/java/stirling/software/SPDF/controller/api/UserController.java
index ce4770499..aa4ae9a00 100644
--- a/src/main/java/stirling/software/SPDF/controller/api/UserController.java
+++ b/src/main/java/stirling/software/SPDF/controller/api/UserController.java
@@ -3,7 +3,6 @@ package stirling.software.SPDF.controller.api;
import java.io.IOException;
import java.security.Principal;
import java.sql.SQLException;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -168,13 +167,23 @@ public class UserController {
@PreAuthorize("!hasAuthority('ROLE_DEMO_USER')")
@PostMapping("/updateUserSettings")
- public String updateUserSettings(HttpServletRequest request, Principal principal)
+ /**
+ * Updates the user settings based on the provided JSON payload.
+ *
+ * @param updates A map containing the settings to update. The expected structure is:
+ *
+ * - emailNotifications (optional): "true" or "false" - Enable or disable email notifications.
+ * - theme (optional): "light" or "dark" - Set the user's preferred theme.
+ * - language (optional): A string representing the preferred language (e.g., "en", "fr").
+ *
+ * Keys not listed above will be ignored.
+ * @param principal The currently authenticated user.
+ * @return A redirect string to the account page after updating the settings.
+ * @throws SQLException If a database error occurs.
+ * @throws UnsupportedProviderException If the operation is not supported for the user's provider.
+ */
+ public String updateUserSettings(@RequestBody Map updates, Principal principal)
throws SQLException, UnsupportedProviderException {
- Map paramMap = request.getParameterMap();
- Map updates = new HashMap<>();
- for (Map.Entry entry : paramMap.entrySet()) {
- updates.put(entry.getKey(), entry.getValue()[0]);
- }
log.debug("Processed updates: {}", updates);
// Assuming you have a method in userService to update the settings for a user
userService.updateUserSettings(principal.getName(), updates);