From 768384011df94fc881443eac84da4dc52d65b4e8 Mon Sep 17 00:00:00 2001 From: Abdullah Atta Date: Mon, 10 Aug 2026 12:08:35 +0500 Subject: [PATCH] api: re-enable password change --- Notesnook.API/Controllers/UsersController.cs | 57 ++++++++++---------- 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/Notesnook.API/Controllers/UsersController.cs b/Notesnook.API/Controllers/UsersController.cs index b011628..a15c856 100644 --- a/Notesnook.API/Controllers/UsersController.cs +++ b/Notesnook.API/Controllers/UsersController.cs @@ -93,39 +93,38 @@ namespace Notesnook.API.Controllers [HttpPatch("password/{type}")] public async Task ChangePassword([FromRoute] string type, [FromBody] ChangePasswordForm form) { - return BadRequest(new { error = "Password change is currently disabled." }); - // var userId = User.GetUserId(); - // var clientId = User.FindFirstValue("client_id"); - // var jti = User.FindFirstValue("jti"); - // var isPasswordReset = type == "reset"; - // try - // { - // var result = isPasswordReset ? await serviceAccessor.UserAccountService.ResetPasswordAsync(userId, form.NewPassword) : await serviceAccessor.UserAccountService.ChangePasswordAsync(userId, form.OldPassword, form.NewPassword); - // if (!result) - // return BadRequest("Failed to change password."); + var userId = User.GetUserId(); + var clientId = User.FindFirstValue("client_id"); + var jti = User.FindFirstValue("jti"); + var isPasswordReset = type == "reset"; + try + { + var result = isPasswordReset ? await serviceAccessor.UserAccountService.ResetPasswordAsync(userId, form.NewPassword) : await serviceAccessor.UserAccountService.ChangePasswordAsync(userId, form.OldPassword, form.NewPassword); + if (!result) + return BadRequest("Failed to change password."); - // await UserService.SetUserKeysAsync(userId, form.UserKeys); + await UserService.SetUserKeysAsync(userId, form.UserKeys); - // await serviceAccessor.UserAccountService.ClearSessionsAsync(userId, clientId, all: false, jti, null); + await serviceAccessor.UserAccountService.ClearSessionsAsync(userId, clientId, all: false, jti, null); - // await WampServers.MessengerServer.PublishMessageAsync(MessengerServerTopics.SendSSETopic, new SendSSEMessage - // { - // UserId = userId, - // OriginTokenId = jti, - // Message = new Message - // { - // Type = "logout", - // Data = JsonSerializer.Serialize(new { reason = "Password changed." }) - // } - // }); + await WampServers.MessengerServer.PublishMessageAsync(MessengerServerTopics.SendSSETopic, new SendSSEMessage + { + UserId = userId, + OriginTokenId = jti, + Message = new Message + { + Type = "logout", + Data = JsonSerializer.Serialize(new { reason = "Password changed." }) + } + }); - // return Ok(); - // } - // catch (Exception ex) - // { - // logger.LogError(ex, "Failed to change password"); - // return BadRequest(new { error = ex.Message }); - // } + return Ok(); + } + catch (Exception ex) + { + logger.LogError(ex, "Failed to change password"); + return BadRequest(new { error = ex.Message }); + } } [HttpPost("reset")]