From 34a09ad15d33c1b08fa25f831b02acec18ac6638 Mon Sep 17 00:00:00 2001 From: 01zulfi <85733202+01zulfi@users.noreply.github.com> Date: Sat, 6 Sep 2025 09:32:44 +0500 Subject: [PATCH] inbox: store user's inbox keys (#47) --- Notesnook.API/Controllers/UsersController.cs | 3 ++- Notesnook.API/Models/Responses/UserResponse.cs | 3 +++ Notesnook.API/Models/UserKeys.cs | 7 +++++++ Notesnook.API/Models/UserSettings.cs | 1 + Notesnook.API/Services/UserService.cs | 11 +++++++++++ 5 files changed, 24 insertions(+), 1 deletion(-) diff --git a/Notesnook.API/Controllers/UsersController.cs b/Notesnook.API/Controllers/UsersController.cs index d79ee11..da50886 100644 --- a/Notesnook.API/Controllers/UsersController.cs +++ b/Notesnook.API/Controllers/UsersController.cs @@ -77,7 +77,8 @@ namespace Notesnook.API.Controllers var keys = new UserKeys { AttachmentsKey = user.AttachmentsKey, - MonographPasswordsKey = user.MonographPasswordsKey + MonographPasswordsKey = user.MonographPasswordsKey, + InboxKeys = user.InboxKeys }; await UserService.SetUserKeysAsync(userId, keys); return Ok(); diff --git a/Notesnook.API/Models/Responses/UserResponse.cs b/Notesnook.API/Models/Responses/UserResponse.cs index b8b1014..39801ba 100644 --- a/Notesnook.API/Models/Responses/UserResponse.cs +++ b/Notesnook.API/Models/Responses/UserResponse.cs @@ -15,6 +15,9 @@ namespace Notesnook.API.Models.Responses [JsonPropertyName("monographPasswordsKey")] public EncryptedData MonographPasswordsKey { get; set; } + [JsonPropertyName("inboxKeys")] + public InboxKeys InboxKeys { get; set; } + [JsonPropertyName("subscription")] public ISubscription Subscription { get; set; } diff --git a/Notesnook.API/Models/UserKeys.cs b/Notesnook.API/Models/UserKeys.cs index f77378d..62b5730 100644 --- a/Notesnook.API/Models/UserKeys.cs +++ b/Notesnook.API/Models/UserKeys.cs @@ -23,5 +23,12 @@ namespace Notesnook.API.Models { public EncryptedData AttachmentsKey { get; set; } public EncryptedData MonographPasswordsKey { get; set; } + public InboxKeys InboxKeys { get; set; } + } + + public class InboxKeys + { + public string Public { get; set; } + public EncryptedData Private { get; set; } } } diff --git a/Notesnook.API/Models/UserSettings.cs b/Notesnook.API/Models/UserSettings.cs index 3020ddc..ebffbba 100644 --- a/Notesnook.API/Models/UserSettings.cs +++ b/Notesnook.API/Models/UserSettings.cs @@ -41,6 +41,7 @@ namespace Notesnook.API.Models public EncryptedData VaultKey { get; set; } public EncryptedData AttachmentsKey { get; set; } public EncryptedData MonographPasswordsKey { get; set; } + public InboxKeys InboxKeys { get; set; } public Limit StorageLimit { get; set; } [BsonId] diff --git a/Notesnook.API/Services/UserService.cs b/Notesnook.API/Services/UserService.cs index 857d089..4ad4a3e 100644 --- a/Notesnook.API/Services/UserService.cs +++ b/Notesnook.API/Services/UserService.cs @@ -148,6 +148,17 @@ namespace Notesnook.API.Services { userSettings.MonographPasswordsKey = keys.MonographPasswordsKey; } + if (keys.InboxKeys != null) + { + if (keys.InboxKeys.Public == null || keys.InboxKeys.Private == null) + { + userSettings.InboxKeys = null; + } + else + { + userSettings.InboxKeys = keys.InboxKeys; + } + } await Repositories.UsersSettings.UpdateAsync(userSettings.Id, userSettings); }