From aa9302abe84912edc7375ceb11ad99b29fa1550d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 3 Apr 2026 18:35:34 +0000 Subject: [PATCH 1/2] Bump Auth0.ManagementApi and Auth0Net.DependencyInjection Bumps Auth0.ManagementApi from 7.46.0 to 8.0.0 Bumps Auth0Net.DependencyInjection from 5.2.1 to 6.0.0 --- updated-dependencies: - dependency-name: Auth0.ManagementApi dependency-version: 8.0.0 dependency-type: direct:production update-type: version-update:semver-major - dependency-name: Auth0Net.DependencyInjection dependency-version: 6.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- src/BabyTracker.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/BabyTracker.csproj b/src/BabyTracker.csproj index 0389cd5..cf7a276 100644 --- a/src/BabyTracker.csproj +++ b/src/BabyTracker.csproj @@ -7,8 +7,8 @@ - - + + From 8238072c6a269fa27f9cba91f875e01ad63269b9 Mon Sep 17 00:00:00 2001 From: "Samir L. Boulema" Date: Sun, 5 Apr 2026 21:26:04 +0200 Subject: [PATCH 2/2] Fix breaking changes --- src/Program.cs | 3 +- src/Repositories/EmailRepository.cs | 6 +-- src/Services/AccountService.cs | 79 ++++++++++++----------------- 3 files changed, 36 insertions(+), 52 deletions(-) diff --git a/src/Program.cs b/src/Program.cs index 1bef11b..dc51eed 100644 --- a/src/Program.cs +++ b/src/Program.cs @@ -54,8 +54,7 @@ }); builder.Services - .AddAuth0ManagementClient() - .AddManagementAccessToken(); + .AddAuth0ManagementClient(); builder.Services .AddScoped() diff --git a/src/Repositories/EmailRepository.cs b/src/Repositories/EmailRepository.cs index 1867568..9413af3 100644 --- a/src/Repositories/EmailRepository.cs +++ b/src/Repositories/EmailRepository.cs @@ -1,6 +1,6 @@ using System; using System.Threading.Tasks; -using Auth0.ManagementApi.Models; +using Auth0.ManagementApi; using BabyTracker.Services; using Microsoft.Extensions.Configuration; using Mjml.Net; @@ -10,12 +10,12 @@ namespace BabyTracker.Repositories; public interface IEmailRepository { - Task SendEmail(string mjml, User user, string userId, string babyName); + Task SendEmail(string mjml, UserResponseSchema user, string userId, string babyName); } public class EmailRepository(IConfiguration configuration) : IEmailRepository { - public async Task SendEmail(string mjml, User user, string userId, string babyName) + public async Task SendEmail(string mjml, UserResponseSchema user, string userId, string babyName) { var userMetaData = AccountService.GetUserMetaData(user); diff --git a/src/Services/AccountService.cs b/src/Services/AccountService.cs index adb53a3..6db5d90 100644 --- a/src/Services/AccountService.cs +++ b/src/Services/AccountService.cs @@ -2,17 +2,15 @@ using System.Collections.Generic; using System.Linq; using System.Security.Claims; +using System.Text.Json; using System.Threading.Tasks; using Auth0.AuthenticationApi; using Auth0.AuthenticationApi.Models; using Auth0.ManagementApi; -using Auth0.ManagementApi.Models; -using Auth0.ManagementApi.Paging; using BabyTracker.Models.Account; using BabyTracker.Models.ViewModels; using Microsoft.AspNetCore.Authentication.Cookies; using Microsoft.Extensions.Configuration; -using Newtonsoft.Json.Linq; namespace BabyTracker.Services; @@ -26,7 +24,7 @@ public interface IAccountService Task SaveUserMetaData(ClaimsPrincipal user, UserMetaData userMetaData); - Task?> SearchUsersWithEnableMemoriesEmail(); + Task?> SearchUsersWithEnableMemoriesEmail(); Task ResetPassword(LoginViewModel model); } @@ -106,76 +104,63 @@ public async Task ResetPassword(LoginViewModel model) { var userId = user.FindFirst(ClaimTypes.NameIdentifier)?.Value; - var clientUser = await managementApiClient.Users.GetAsync(userId); + var clientUser = await managementApiClient.Users.GetAsync(userId, new()); return GetUserMetaData(clientUser); } - public static UserMetaData? GetUserMetaData(User user) + public static UserMetaData? GetUserMetaData(GetUserResponseContent user) { - if (user.UserMetadata is not JObject userMetaDataObject) - { - return null; - } + var json = JsonSerializer.Serialize(user.UserMetadata); + return JsonSerializer.Deserialize(json); + } - return userMetaDataObject.ToObject(); + public static UserMetaData? GetUserMetaData(UserResponseSchema user) + { + var json = JsonSerializer.Serialize(user.UserMetadata); + return JsonSerializer.Deserialize(json); } public async Task SaveUserMetaData(ClaimsPrincipal user, UserMetaData userMetaData) { var userId = user.FindFirst(ClaimTypes.NameIdentifier)?.Value; + var json = JsonSerializer.Serialize(userMetaData); + var dict = JsonSerializer.Deserialize>(json); + await managementApiClient.Users.UpdateAsync(userId, new() { - UserMetadata = userMetaData + UserMetadata = dict }); return true; } - public async Task?> SearchUsersWithEnableMemoriesEmail() - { - var users = new List(); - - var pageNo = 0; - - IPagedList page; - - do - { - page = await managementApiClient.Users.GetAllAsync( - new() { Query = "user_metadata.EnableMemoriesEmail:true" }, - new(pageNo) - ); - - users.AddRange(page); - - pageNo++; - } while (page.Paging != null && page.Paging.Length == page.Paging.Limit); + public async Task?> SearchUsersWithEnableMemoriesEmail() + => await QueryUsers("user_metadata.EnableMemoriesEmail:true"); - return users; + private async Task SearchUsersWithShareList(string emailAddress) + { + var users = await QueryUsers($"user_metadata.ShareList:{emailAddress}"); + return users?.FirstOrDefault(); } - private async Task SearchUsersWithShareList(string emailAddress) + private async Task?> QueryUsers(string query) { - var users = new List(); + var users = new List(); - var pageNo = 0; - - IPagedList page; - - do + var request = new ListUsersRequestParameters { - page = await managementApiClient.Users.GetAllAsync( - new() { Query = $"user_metadata.ShareList:{emailAddress}" }, - new(pageNo) - ); + Q = query + }; - users.AddRange(page); + var pager = await managementApiClient.Users.ListAsync(request); - pageNo++; - } while (page.Paging != null && page.Paging.Length == page.Paging.Limit); + await foreach (var user in pager) + { + users.Add(user); + } - return users.FirstOrDefault(); + return users; } }