From b6ef92fdedb07bade0dbaba02dc8edadd0897c09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Wi=C5=9Bniewski?= <148913398+bwisniewski26@users.noreply.github.com> Date: Wed, 7 May 2025 11:18:44 +0200 Subject: [PATCH 1/2] Adjust PrivMX policy to fix crashes in app's task list screen --- FamilyVaultServer/Models/PrivMxPolicy/PrivMxPolicy.cs | 10 ++++++++++ .../Models/PrivMxPolicy/PrivMxThreadItemPolicy.cs | 11 +++++++++++ .../Models/PrivMxPolicy/PrivMxThreadPolicy.cs | 10 ++++++++++ .../Parameters/PrivMxCreateContextParameters.cs | 7 +++++-- FamilyVaultServer/Services/PrivMx/PrivMxService.cs | 4 +++- 5 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 FamilyVaultServer/Models/PrivMxPolicy/PrivMxPolicy.cs create mode 100644 FamilyVaultServer/Models/PrivMxPolicy/PrivMxThreadItemPolicy.cs create mode 100644 FamilyVaultServer/Models/PrivMxPolicy/PrivMxThreadPolicy.cs diff --git a/FamilyVaultServer/Models/PrivMxPolicy/PrivMxPolicy.cs b/FamilyVaultServer/Models/PrivMxPolicy/PrivMxPolicy.cs new file mode 100644 index 0000000..ee0d87d --- /dev/null +++ b/FamilyVaultServer/Models/PrivMxPolicy/PrivMxPolicy.cs @@ -0,0 +1,10 @@ +using System.Text.Json.Serialization; + +namespace FamilyVaultServer.Models.PrivMxPolicy +{ + public class PrivMxPolicy + { + [JsonPropertyName("thread")] + public PrivMxThreadPolicy ThreadPolicy = new(); + } +} \ No newline at end of file diff --git a/FamilyVaultServer/Models/PrivMxPolicy/PrivMxThreadItemPolicy.cs b/FamilyVaultServer/Models/PrivMxPolicy/PrivMxThreadItemPolicy.cs new file mode 100644 index 0000000..1954734 --- /dev/null +++ b/FamilyVaultServer/Models/PrivMxPolicy/PrivMxThreadItemPolicy.cs @@ -0,0 +1,11 @@ +using System.Text.Json.Serialization; + +namespace FamilyVaultServer.Models.PrivMxPolicy +{ + public class PrivMxThreadItemPolicy + { + + [JsonPropertyName("update")] + public string Update = "all"; + } +} \ No newline at end of file diff --git a/FamilyVaultServer/Models/PrivMxPolicy/PrivMxThreadPolicy.cs b/FamilyVaultServer/Models/PrivMxPolicy/PrivMxThreadPolicy.cs new file mode 100644 index 0000000..8ebf282 --- /dev/null +++ b/FamilyVaultServer/Models/PrivMxPolicy/PrivMxThreadPolicy.cs @@ -0,0 +1,10 @@ +using System.Text.Json.Serialization; + +namespace FamilyVaultServer.Models.PrivMxPolicy +{ + public class PrivMxThreadPolicy + { + [JsonPropertyName("item")] + public PrivMxThreadItemPolicy item = new(); + } +} \ No newline at end of file diff --git a/FamilyVaultServer/Services/PrivMx/Models/Parameters/PrivMxCreateContextParameters.cs b/FamilyVaultServer/Services/PrivMx/Models/Parameters/PrivMxCreateContextParameters.cs index da6cd42..672d41a 100644 --- a/FamilyVaultServer/Services/PrivMx/Models/Parameters/PrivMxCreateContextParameters.cs +++ b/FamilyVaultServer/Services/PrivMx/Models/Parameters/PrivMxCreateContextParameters.cs @@ -1,4 +1,5 @@ -using FamilyVaultServer.Services.PrivMx.Models.Params; +using FamilyVaultServer.Models.PrivMxPolicy; +using FamilyVaultServer.Services.PrivMx.Models.Params; using System.Text.Json.Serialization; namespace FamilyVaultServer.Services.PrivMx.Models.Parameters @@ -13,5 +14,7 @@ public class PrivMxCreateContextParameters : PrivMxRequestParameters public required string Description { get; set; } [JsonPropertyName("scope")] public required string Scope { get; set; } + [JsonPropertyName("policy")] + public PrivMxPolicy Policy = new PrivMxPolicy(); } -} +} diff --git a/FamilyVaultServer/Services/PrivMx/PrivMxService.cs b/FamilyVaultServer/Services/PrivMx/PrivMxService.cs index 032dd76..1bc7bd1 100644 --- a/FamilyVaultServer/Services/PrivMx/PrivMxService.cs +++ b/FamilyVaultServer/Services/PrivMx/PrivMxService.cs @@ -1,4 +1,5 @@ -using FamilyVaultServer.Services.PrivMx.Models.Parameters; +using FamilyVaultServer.Models.PrivMxPolicy; +using FamilyVaultServer.Services.PrivMx.Models.Parameters; using FamilyVaultServer.Services.PrivMx.Models.Result; using Microsoft.Extensions.Options; @@ -30,6 +31,7 @@ public async Task CreateContext(string name, string d Name = name, Description = description, Scope = scope, + Policy = new PrivMxPolicy() }); } From de3e544af741ec495e8c248087b58cce38f79bff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Paw=C5=82owski?= <59766830+pawl0wski@users.noreply.github.com> Date: Thu, 8 May 2025 00:25:08 +0200 Subject: [PATCH 2/2] Fixes to PrivMx Policy --- .../Models/PrivMxPolicy/PrivMxPolicy.cs | 10 ---------- .../Parameters/PrivMxCreateContextParameters.cs | 6 +++--- .../Services/PrivMx/Models/Policy/PrivMxPolicy.cs | 10 ++++++++++ .../Models/Policy}/PrivMxThreadItemPolicy.cs | 4 ++-- .../PrivMx/Models/Policy}/PrivMxThreadPolicy.cs | 4 ++-- .../Services/PrivMx/PrivMxService.cs | 6 +++--- FamilyVaultServer/Utils/Policies.cs | 15 +++++++++++++++ 7 files changed, 35 insertions(+), 20 deletions(-) delete mode 100644 FamilyVaultServer/Models/PrivMxPolicy/PrivMxPolicy.cs create mode 100644 FamilyVaultServer/Services/PrivMx/Models/Policy/PrivMxPolicy.cs rename FamilyVaultServer/{Models/PrivMxPolicy => Services/PrivMx/Models/Policy}/PrivMxThreadItemPolicy.cs (54%) rename FamilyVaultServer/{Models/PrivMxPolicy => Services/PrivMx/Models/Policy}/PrivMxThreadPolicy.cs (50%) create mode 100644 FamilyVaultServer/Utils/Policies.cs diff --git a/FamilyVaultServer/Models/PrivMxPolicy/PrivMxPolicy.cs b/FamilyVaultServer/Models/PrivMxPolicy/PrivMxPolicy.cs deleted file mode 100644 index ee0d87d..0000000 --- a/FamilyVaultServer/Models/PrivMxPolicy/PrivMxPolicy.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.Text.Json.Serialization; - -namespace FamilyVaultServer.Models.PrivMxPolicy -{ - public class PrivMxPolicy - { - [JsonPropertyName("thread")] - public PrivMxThreadPolicy ThreadPolicy = new(); - } -} \ No newline at end of file diff --git a/FamilyVaultServer/Services/PrivMx/Models/Parameters/PrivMxCreateContextParameters.cs b/FamilyVaultServer/Services/PrivMx/Models/Parameters/PrivMxCreateContextParameters.cs index 672d41a..66392a8 100644 --- a/FamilyVaultServer/Services/PrivMx/Models/Parameters/PrivMxCreateContextParameters.cs +++ b/FamilyVaultServer/Services/PrivMx/Models/Parameters/PrivMxCreateContextParameters.cs @@ -1,5 +1,5 @@ -using FamilyVaultServer.Models.PrivMxPolicy; -using FamilyVaultServer.Services.PrivMx.Models.Params; +using FamilyVaultServer.Services.PrivMx.Models.Params; +using FamilyVaultServer.Services.PrivMx.Models.Policy; using System.Text.Json.Serialization; namespace FamilyVaultServer.Services.PrivMx.Models.Parameters @@ -15,6 +15,6 @@ public class PrivMxCreateContextParameters : PrivMxRequestParameters [JsonPropertyName("scope")] public required string Scope { get; set; } [JsonPropertyName("policy")] - public PrivMxPolicy Policy = new PrivMxPolicy(); + public required PrivMxPolicy Policy { get; set; } } } diff --git a/FamilyVaultServer/Services/PrivMx/Models/Policy/PrivMxPolicy.cs b/FamilyVaultServer/Services/PrivMx/Models/Policy/PrivMxPolicy.cs new file mode 100644 index 0000000..65c497d --- /dev/null +++ b/FamilyVaultServer/Services/PrivMx/Models/Policy/PrivMxPolicy.cs @@ -0,0 +1,10 @@ +using System.Text.Json.Serialization; + +namespace FamilyVaultServer.Services.PrivMx.Models.Policy +{ + public class PrivMxPolicy + { + [JsonPropertyName("thread")] + public required PrivMxThreadPolicy Thread { get; set; } + } +} \ No newline at end of file diff --git a/FamilyVaultServer/Models/PrivMxPolicy/PrivMxThreadItemPolicy.cs b/FamilyVaultServer/Services/PrivMx/Models/Policy/PrivMxThreadItemPolicy.cs similarity index 54% rename from FamilyVaultServer/Models/PrivMxPolicy/PrivMxThreadItemPolicy.cs rename to FamilyVaultServer/Services/PrivMx/Models/Policy/PrivMxThreadItemPolicy.cs index 1954734..45d8a8d 100644 --- a/FamilyVaultServer/Models/PrivMxPolicy/PrivMxThreadItemPolicy.cs +++ b/FamilyVaultServer/Services/PrivMx/Models/Policy/PrivMxThreadItemPolicy.cs @@ -1,11 +1,11 @@ using System.Text.Json.Serialization; -namespace FamilyVaultServer.Models.PrivMxPolicy +namespace FamilyVaultServer.Services.PrivMx.Models.Policy { public class PrivMxThreadItemPolicy { [JsonPropertyName("update")] - public string Update = "all"; + public required string Update { get; set; } } } \ No newline at end of file diff --git a/FamilyVaultServer/Models/PrivMxPolicy/PrivMxThreadPolicy.cs b/FamilyVaultServer/Services/PrivMx/Models/Policy/PrivMxThreadPolicy.cs similarity index 50% rename from FamilyVaultServer/Models/PrivMxPolicy/PrivMxThreadPolicy.cs rename to FamilyVaultServer/Services/PrivMx/Models/Policy/PrivMxThreadPolicy.cs index 8ebf282..c65fbd5 100644 --- a/FamilyVaultServer/Models/PrivMxPolicy/PrivMxThreadPolicy.cs +++ b/FamilyVaultServer/Services/PrivMx/Models/Policy/PrivMxThreadPolicy.cs @@ -1,10 +1,10 @@ using System.Text.Json.Serialization; -namespace FamilyVaultServer.Models.PrivMxPolicy +namespace FamilyVaultServer.Services.PrivMx.Models.Policy { public class PrivMxThreadPolicy { [JsonPropertyName("item")] - public PrivMxThreadItemPolicy item = new(); + public required PrivMxThreadItemPolicy Item { get; set; } } } \ No newline at end of file diff --git a/FamilyVaultServer/Services/PrivMx/PrivMxService.cs b/FamilyVaultServer/Services/PrivMx/PrivMxService.cs index 1bc7bd1..a5f2522 100644 --- a/FamilyVaultServer/Services/PrivMx/PrivMxService.cs +++ b/FamilyVaultServer/Services/PrivMx/PrivMxService.cs @@ -1,6 +1,6 @@ -using FamilyVaultServer.Models.PrivMxPolicy; -using FamilyVaultServer.Services.PrivMx.Models.Parameters; +using FamilyVaultServer.Services.PrivMx.Models.Parameters; using FamilyVaultServer.Services.PrivMx.Models.Result; +using FamilyVaultServer.Utils; using Microsoft.Extensions.Options; namespace FamilyVaultServer.Services.PrivMx @@ -31,7 +31,7 @@ public async Task CreateContext(string name, string d Name = name, Description = description, Scope = scope, - Policy = new PrivMxPolicy() + Policy = Policies.Default }); } diff --git a/FamilyVaultServer/Utils/Policies.cs b/FamilyVaultServer/Utils/Policies.cs new file mode 100644 index 0000000..cac6b9d --- /dev/null +++ b/FamilyVaultServer/Utils/Policies.cs @@ -0,0 +1,15 @@ +using FamilyVaultServer.Services.PrivMx.Models.Policy; + +namespace FamilyVaultServer.Utils +{ + public static class Policies + { + public static PrivMxPolicy Default = new PrivMxPolicy + { + Thread = new PrivMxThreadPolicy + { + Item = new PrivMxThreadItemPolicy { Update = "all" } + } + }; + } +}