From 09164987c48c1ba95b2da95fb5c88131ce48a693 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mehmet=20Can=20Karag=C3=B6z?= Date: Mon, 12 Oct 2026 21:47:33 +0300 Subject: [PATCH] Public API Naming Consistency & Fix Missing Namespaces --- .../Dialogs/CredentialDialog.razor.cs | 2 +- .../Components/Dialogs/ResetDialog.razor.cs | 2 +- .../Components/Pages/ResetCredential.razor.cs | 2 +- .../Dialogs/CredentialDialog.razor.cs | 2 +- .../Components/Dialogs/ResetDialog.razor.cs | 2 +- .../Components/Pages/ResetCredential.razor.cs | 2 +- .../Program.cs | 1 + .../Dialogs/CredentialDialog.razor.cs | 2 +- .../Components/Dialogs/ResetDialog.razor.cs | 2 +- .../Pages/ResetCredential.razor.cs | 2 +- .../Dialogs/CredentialDialog.razor.cs | 2 +- .../Components/Dialogs/ResetDialog.razor.cs | 2 +- .../Pages/ResetCredential.razor.cs | 2 +- .../Endpoints/LogoutEndpointHandler.cs | 5 ++- ...eleteRoleResult.cs => RoleDeleteResult.cs} | 2 +- ...RolesResponse.cs => UserRolesGetResult.cs} | 2 +- .../Endpoints/AuthorizationEndpointHandler.cs | 4 +-- .../Services/RoleService.cs | 6 ++-- .../Abstractions/IRoleService.cs | 2 +- .../Abstractions/IAuthorizationClient.cs | 6 ++-- .../Abstractions/ICredentialClient.cs | 16 +++++----- .../Services/UAuthAuthorizationClient.cs | 12 +++---- .../Services/UAuthCredentialClient.cs | 26 +++++++-------- ...entialResult.cs => CredentialAddResult.cs} | 6 ++-- ...esult.cs => CredentialBeginResetResult.cs} | 2 +- ...ialResult.cs => CredentialChangeResult.cs} | 6 ++-- ...tialsResult.cs => CredentialsGetResult.cs} | 2 +- .../Services/CredentialManagementService.cs | 24 +++++++------- .../Services/ICredentialManagementService.cs | 8 ++--- .../Requests/LogoutOtherDevicesRequest.cs | 2 +- .../Requests}/UserLifecycleQuery.cs | 2 +- .../Requests}/UserProfileQuery.cs | 3 +- .../Responses/BeginMfaSetupResult.cs | 8 ----- ...lt.cs => UserIdentifierExistenceResult.cs} | 2 +- ...nse.cs => UserIdentifierExistsResponse.cs} | 2 +- .../Stores/EfCoreUserIdentifierStore.cs | 6 ++-- .../Stores/EfCoreUserLifecycleStore.cs | 1 + .../Stores/InMemoryUserIdentifierStore.cs | 6 ++-- .../Stores/InMemoryUserLifecycleStore.cs | 1 + .../Endpoints/UserEndpointHandler.cs | 4 +-- .../UserIdentifierAvailabilityService.cs | 3 +- .../Stores/IUserIdentifierStore.cs | 2 +- .../Stores/IUserLifecycleStore.cs | 1 + .../Abstractions/IUserIdentifierVerifier.cs | 2 ++ .../FailingUserIdentifierStore.cs | 2 +- .../AuthorizationManagementTests.cs | 4 +-- .../CredentialManagementTests.cs | 4 +-- .../FailingUserIdentifierStore.cs | 2 +- .../LogoutAdminTests.cs | 10 +++--- .../SdkEnpointContractTests.cs | 4 +-- .../UserIdentifierTests.cs | 1 + .../AuthorizationEndpointHandlerTests.cs | 2 +- .../Authorization/RoleServiceTests.cs | 4 +-- .../Client/UAuthClientAuthorizationTests.cs | 6 ++-- .../Client/UAuthClientCredentialsTests.cs | 18 +++++------ .../UAuthClientEventConsistencyTests.cs | 4 +-- .../Client/UAuthFlowClientTests.cs | 2 +- .../CredentialEndpointHandlerTests.cs | 32 +++++++++---------- .../CredentialManagementServiceTests.cs | 16 +++++----- .../Server/LogoutEndpointHandlerTests.cs | 2 +- .../Store/UserLifecycleStoreContractTests.cs | 1 + .../Users/UserApplicationServiceTests.cs | 10 +++--- .../Users/UserEndpointHandlerTests.cs | 4 +-- 63 files changed, 163 insertions(+), 164 deletions(-) rename src/authorization/CodeBeam.UltimateAuth.Authorization.Contracts/Responses/{DeleteRoleResult.cs => RoleDeleteResult.cs} (88%) rename src/authorization/CodeBeam.UltimateAuth.Authorization.Contracts/Responses/{UserRolesResponse.cs => UserRolesGetResult.cs} (87%) rename src/credentials/CodeBeam.UltimateAuth.Credentials.Contracts/Responses/{AddCredentialResult.cs => CredentialAddResult.cs} (77%) rename src/credentials/CodeBeam.UltimateAuth.Credentials.Contracts/Responses/{BeginCredentialResetResult.cs => CredentialBeginResetResult.cs} (70%) rename src/credentials/CodeBeam.UltimateAuth.Credentials.Contracts/Responses/{ChangeCredentialResult.cs => CredentialChangeResult.cs} (71%) rename src/credentials/CodeBeam.UltimateAuth.Credentials.Contracts/Responses/{GetCredentialsResult.cs => CredentialsGetResult.cs} (80%) rename src/users/{CodeBeam.UltimateAuth.Users.Reference/Contracts => CodeBeam.UltimateAuth.Users.Contracts/Requests}/UserLifecycleQuery.cs (80%) rename src/users/{CodeBeam.UltimateAuth.Users.Reference/Contracts => CodeBeam.UltimateAuth.Users.Contracts/Requests}/UserProfileQuery.cs (67%) delete mode 100644 src/users/CodeBeam.UltimateAuth.Users.Contracts/Responses/BeginMfaSetupResult.cs rename src/users/CodeBeam.UltimateAuth.Users.Contracts/Responses/{IdentifierExistenceResult.cs => UserIdentifierExistenceResult.cs} (80%) rename src/users/CodeBeam.UltimateAuth.Users.Contracts/Responses/{IdentifierExistsResponse.cs => UserIdentifierExistsResponse.cs} (65%) diff --git a/samples/blazor-server/CodeBeam.UltimateAuth.Sample.BlazorServer.EFCore/Components/Dialogs/CredentialDialog.razor.cs b/samples/blazor-server/CodeBeam.UltimateAuth.Sample.BlazorServer.EFCore/Components/Dialogs/CredentialDialog.razor.cs index 5e931ea6..13b4f69f 100644 --- a/samples/blazor-server/CodeBeam.UltimateAuth.Sample.BlazorServer.EFCore/Components/Dialogs/CredentialDialog.razor.cs +++ b/samples/blazor-server/CodeBeam.UltimateAuth.Sample.BlazorServer.EFCore/Components/Dialogs/CredentialDialog.razor.cs @@ -62,7 +62,7 @@ private async Task ChangePasswordAsync() }; } - UAuthResult result; + UAuthResult result; if (UserKey is null) { result = await UAuthClient.Credentials.ChangeMyAsync(request); diff --git a/samples/blazor-server/CodeBeam.UltimateAuth.Sample.BlazorServer.EFCore/Components/Dialogs/ResetDialog.razor.cs b/samples/blazor-server/CodeBeam.UltimateAuth.Sample.BlazorServer.EFCore/Components/Dialogs/ResetDialog.razor.cs index f70034d2..25c068f0 100644 --- a/samples/blazor-server/CodeBeam.UltimateAuth.Sample.BlazorServer.EFCore/Components/Dialogs/ResetDialog.razor.cs +++ b/samples/blazor-server/CodeBeam.UltimateAuth.Sample.BlazorServer.EFCore/Components/Dialogs/ResetDialog.razor.cs @@ -26,7 +26,7 @@ private async Task RequestResetAsync() Identifier = _identifier ?? string.Empty }; - var result = await UAuthClient.Credentials.BeginResetMyAsync(request); + var result = await UAuthClient.Credentials.BeginResetAsync(request); if (!result.IsSuccess || result.Value is null) { Snackbar.Add(result.ErrorText ?? "Failed to request credential reset.", Severity.Error); diff --git a/samples/blazor-server/CodeBeam.UltimateAuth.Sample.BlazorServer.EFCore/Components/Pages/ResetCredential.razor.cs b/samples/blazor-server/CodeBeam.UltimateAuth.Sample.BlazorServer.EFCore/Components/Pages/ResetCredential.razor.cs index 9c453a4d..1569f1f4 100644 --- a/samples/blazor-server/CodeBeam.UltimateAuth.Sample.BlazorServer.EFCore/Components/Pages/ResetCredential.razor.cs +++ b/samples/blazor-server/CodeBeam.UltimateAuth.Sample.BlazorServer.EFCore/Components/Pages/ResetCredential.razor.cs @@ -38,7 +38,7 @@ private async Task ResetPasswordAsync() Identifier = Identifier // Coming from UAuthFlowPageBase automatically if begin reset is successful }; - var result = await UAuthClient.Credentials.CompleteResetMyAsync(request); + var result = await UAuthClient.Credentials.CompleteResetAsync(request); if (result.IsSuccess) { diff --git a/samples/blazor-server/CodeBeam.UltimateAuth.Sample.BlazorServer/Components/Dialogs/CredentialDialog.razor.cs b/samples/blazor-server/CodeBeam.UltimateAuth.Sample.BlazorServer/Components/Dialogs/CredentialDialog.razor.cs index 887707c5..04ba3a44 100644 --- a/samples/blazor-server/CodeBeam.UltimateAuth.Sample.BlazorServer/Components/Dialogs/CredentialDialog.razor.cs +++ b/samples/blazor-server/CodeBeam.UltimateAuth.Sample.BlazorServer/Components/Dialogs/CredentialDialog.razor.cs @@ -62,7 +62,7 @@ private async Task ChangePasswordAsync() }; } - UAuthResult result; + UAuthResult result; if (UserKey is null) { result = await UAuthClient.Credentials.ChangeMyAsync(request); diff --git a/samples/blazor-server/CodeBeam.UltimateAuth.Sample.BlazorServer/Components/Dialogs/ResetDialog.razor.cs b/samples/blazor-server/CodeBeam.UltimateAuth.Sample.BlazorServer/Components/Dialogs/ResetDialog.razor.cs index 96e81a55..0cbbd926 100644 --- a/samples/blazor-server/CodeBeam.UltimateAuth.Sample.BlazorServer/Components/Dialogs/ResetDialog.razor.cs +++ b/samples/blazor-server/CodeBeam.UltimateAuth.Sample.BlazorServer/Components/Dialogs/ResetDialog.razor.cs @@ -26,7 +26,7 @@ private async Task RequestResetAsync() Identifier = _identifier ?? string.Empty }; - var result = await UAuthClient.Credentials.BeginResetMyAsync(request); + var result = await UAuthClient.Credentials.BeginResetAsync(request); if (!result.IsSuccess || result.Value is null) { Snackbar.Add(result.ErrorText ?? "Failed to request credential reset.", Severity.Error); diff --git a/samples/blazor-server/CodeBeam.UltimateAuth.Sample.BlazorServer/Components/Pages/ResetCredential.razor.cs b/samples/blazor-server/CodeBeam.UltimateAuth.Sample.BlazorServer/Components/Pages/ResetCredential.razor.cs index f02691c1..44c1f1a0 100644 --- a/samples/blazor-server/CodeBeam.UltimateAuth.Sample.BlazorServer/Components/Pages/ResetCredential.razor.cs +++ b/samples/blazor-server/CodeBeam.UltimateAuth.Sample.BlazorServer/Components/Pages/ResetCredential.razor.cs @@ -38,7 +38,7 @@ private async Task ResetPasswordAsync() Identifier = Identifier // Coming from UAuthFlowPageBase automatically if begin reset is successful }; - var result = await UAuthClient.Credentials.CompleteResetMyAsync(request); + var result = await UAuthClient.Credentials.CompleteResetAsync(request); if (result.IsSuccess) { diff --git a/samples/blazor-server/CodeBeam.UltimateAuth.Sample.BlazorServer/Program.cs b/samples/blazor-server/CodeBeam.UltimateAuth.Sample.BlazorServer/Program.cs index 6613d3f2..2e5cef70 100644 --- a/samples/blazor-server/CodeBeam.UltimateAuth.Sample.BlazorServer/Program.cs +++ b/samples/blazor-server/CodeBeam.UltimateAuth.Sample.BlazorServer/Program.cs @@ -9,6 +9,7 @@ using CodeBeam.UltimateAuth.Sample.BlazorServer.Infrastructure; using CodeBeam.UltimateAuth.Sample.Seed.Extensions; using CodeBeam.UltimateAuth.Server.Extensions; +using CodeBeam.UltimateAuth.Users; using Microsoft.AspNetCore.HttpOverrides; using MudBlazor.Services; using MudExtensions.Services; diff --git a/samples/blazor-standalone-wasm/CodeBeam.UltimateAuth.Sample.BlazorStandaloneWasm/Components/Dialogs/CredentialDialog.razor.cs b/samples/blazor-standalone-wasm/CodeBeam.UltimateAuth.Sample.BlazorStandaloneWasm/Components/Dialogs/CredentialDialog.razor.cs index a9c76d1c..e3b5c2ed 100644 --- a/samples/blazor-standalone-wasm/CodeBeam.UltimateAuth.Sample.BlazorStandaloneWasm/Components/Dialogs/CredentialDialog.razor.cs +++ b/samples/blazor-standalone-wasm/CodeBeam.UltimateAuth.Sample.BlazorStandaloneWasm/Components/Dialogs/CredentialDialog.razor.cs @@ -62,7 +62,7 @@ private async Task ChangePasswordAsync() }; } - UAuthResult result; + UAuthResult result; if (UserKey is null) { result = await UAuthClient.Credentials.ChangeMyAsync(request); diff --git a/samples/blazor-standalone-wasm/CodeBeam.UltimateAuth.Sample.BlazorStandaloneWasm/Components/Dialogs/ResetDialog.razor.cs b/samples/blazor-standalone-wasm/CodeBeam.UltimateAuth.Sample.BlazorStandaloneWasm/Components/Dialogs/ResetDialog.razor.cs index 7dab5f66..eafbd881 100644 --- a/samples/blazor-standalone-wasm/CodeBeam.UltimateAuth.Sample.BlazorStandaloneWasm/Components/Dialogs/ResetDialog.razor.cs +++ b/samples/blazor-standalone-wasm/CodeBeam.UltimateAuth.Sample.BlazorStandaloneWasm/Components/Dialogs/ResetDialog.razor.cs @@ -26,7 +26,7 @@ private async Task RequestResetAsync() Identifier = _identifier ?? string.Empty }; - var result = await UAuthClient.Credentials.BeginResetMyAsync(request); + var result = await UAuthClient.Credentials.BeginResetAsync(request); if (!result.IsSuccess || result.Value is null) { Snackbar.Add(result.ErrorText ?? "Failed to request credential reset.", Severity.Error); diff --git a/samples/blazor-standalone-wasm/CodeBeam.UltimateAuth.Sample.BlazorStandaloneWasm/Pages/ResetCredential.razor.cs b/samples/blazor-standalone-wasm/CodeBeam.UltimateAuth.Sample.BlazorStandaloneWasm/Pages/ResetCredential.razor.cs index 231c8115..8a02dcf0 100644 --- a/samples/blazor-standalone-wasm/CodeBeam.UltimateAuth.Sample.BlazorStandaloneWasm/Pages/ResetCredential.razor.cs +++ b/samples/blazor-standalone-wasm/CodeBeam.UltimateAuth.Sample.BlazorStandaloneWasm/Pages/ResetCredential.razor.cs @@ -38,7 +38,7 @@ private async Task ResetPasswordAsync() Identifier = Identifier // Coming from UAuthFlowPageBase automatically if begin reset is successful }; - var result = await UAuthClient.Credentials.CompleteResetMyAsync(request); + var result = await UAuthClient.Credentials.CompleteResetAsync(request); if (result.IsSuccess) { diff --git a/samples/int-wasm/CodeBeam.UAuth.Sample.IntWasm/CodeBeam.UAuth.Sample.IntWasm.Client/Components/Dialogs/CredentialDialog.razor.cs b/samples/int-wasm/CodeBeam.UAuth.Sample.IntWasm/CodeBeam.UAuth.Sample.IntWasm.Client/Components/Dialogs/CredentialDialog.razor.cs index 93228c65..fa3f8117 100644 --- a/samples/int-wasm/CodeBeam.UAuth.Sample.IntWasm/CodeBeam.UAuth.Sample.IntWasm.Client/Components/Dialogs/CredentialDialog.razor.cs +++ b/samples/int-wasm/CodeBeam.UAuth.Sample.IntWasm/CodeBeam.UAuth.Sample.IntWasm.Client/Components/Dialogs/CredentialDialog.razor.cs @@ -62,7 +62,7 @@ private async Task ChangePasswordAsync() }; } - UAuthResult result; + UAuthResult result; if (UserKey is null) { result = await UAuthClient.Credentials.ChangeMyAsync(request); diff --git a/samples/int-wasm/CodeBeam.UAuth.Sample.IntWasm/CodeBeam.UAuth.Sample.IntWasm.Client/Components/Dialogs/ResetDialog.razor.cs b/samples/int-wasm/CodeBeam.UAuth.Sample.IntWasm/CodeBeam.UAuth.Sample.IntWasm.Client/Components/Dialogs/ResetDialog.razor.cs index 17ff4866..349f56ff 100644 --- a/samples/int-wasm/CodeBeam.UAuth.Sample.IntWasm/CodeBeam.UAuth.Sample.IntWasm.Client/Components/Dialogs/ResetDialog.razor.cs +++ b/samples/int-wasm/CodeBeam.UAuth.Sample.IntWasm/CodeBeam.UAuth.Sample.IntWasm.Client/Components/Dialogs/ResetDialog.razor.cs @@ -26,7 +26,7 @@ private async Task RequestResetAsync() Identifier = _identifier ?? string.Empty }; - var result = await UAuthClient.Credentials.BeginResetMyAsync(request); + var result = await UAuthClient.Credentials.BeginResetAsync(request); if (!result.IsSuccess || result.Value is null) { Snackbar.Add(result.ErrorText ?? "Failed to request credential reset.", Severity.Error); diff --git a/samples/int-wasm/CodeBeam.UAuth.Sample.IntWasm/CodeBeam.UAuth.Sample.IntWasm.Client/Pages/ResetCredential.razor.cs b/samples/int-wasm/CodeBeam.UAuth.Sample.IntWasm/CodeBeam.UAuth.Sample.IntWasm.Client/Pages/ResetCredential.razor.cs index 401d8656..4e8847fe 100644 --- a/samples/int-wasm/CodeBeam.UAuth.Sample.IntWasm/CodeBeam.UAuth.Sample.IntWasm.Client/Pages/ResetCredential.razor.cs +++ b/samples/int-wasm/CodeBeam.UAuth.Sample.IntWasm/CodeBeam.UAuth.Sample.IntWasm.Client/Pages/ResetCredential.razor.cs @@ -38,7 +38,7 @@ private async Task ResetPasswordAsync() Identifier = Identifier // Coming from UAuthFlowPageBase automatically if begin reset is successful }; - var result = await UAuthClient.Credentials.CompleteResetMyAsync(request); + var result = await UAuthClient.Credentials.CompleteResetAsync(request); if (result.IsSuccess) { diff --git a/src/CodeBeam.UltimateAuth.Server/Endpoints/LogoutEndpointHandler.cs b/src/CodeBeam.UltimateAuth.Server/Endpoints/LogoutEndpointHandler.cs index 06f9b4fd..175b07d3 100644 --- a/src/CodeBeam.UltimateAuth.Server/Endpoints/LogoutEndpointHandler.cs +++ b/src/CodeBeam.UltimateAuth.Server/Endpoints/LogoutEndpointHandler.cs @@ -1,5 +1,4 @@ -using CodeBeam.UltimateAuth.Core.Abstractions; -using CodeBeam.UltimateAuth.Core.Contracts; +using CodeBeam.UltimateAuth.Core.Contracts; using CodeBeam.UltimateAuth.Core.Defaults; using CodeBeam.UltimateAuth.Core.Domain; using CodeBeam.UltimateAuth.Core.Options; @@ -132,7 +131,7 @@ public async Task LogoutOthersAdminAsync(HttpContext ctx, UserKey userK resource: "flows", resourceId: userKey.Value); - await _sessionApplicationService.LogoutOtherDevicesAsync(access, userKey, request.CurrentChainId, ctx.RequestAborted); + await _sessionApplicationService.LogoutOtherDevicesAsync(access, userKey, request.ExceptChainId, ctx.RequestAborted); return Results.Ok(); } diff --git a/src/authorization/CodeBeam.UltimateAuth.Authorization.Contracts/Responses/DeleteRoleResult.cs b/src/authorization/CodeBeam.UltimateAuth.Authorization.Contracts/Responses/RoleDeleteResult.cs similarity index 88% rename from src/authorization/CodeBeam.UltimateAuth.Authorization.Contracts/Responses/DeleteRoleResult.cs rename to src/authorization/CodeBeam.UltimateAuth.Authorization.Contracts/Responses/RoleDeleteResult.cs index ce6c06b1..60d1bcc5 100644 --- a/src/authorization/CodeBeam.UltimateAuth.Authorization.Contracts/Responses/DeleteRoleResult.cs +++ b/src/authorization/CodeBeam.UltimateAuth.Authorization.Contracts/Responses/RoleDeleteResult.cs @@ -2,7 +2,7 @@ namespace CodeBeam.UltimateAuth.Authorization.Contracts; -public sealed class DeleteRoleResult +public sealed class RoleDeleteResult { public RoleId RoleId { get; init; } diff --git a/src/authorization/CodeBeam.UltimateAuth.Authorization.Contracts/Responses/UserRolesResponse.cs b/src/authorization/CodeBeam.UltimateAuth.Authorization.Contracts/Responses/UserRolesGetResult.cs similarity index 87% rename from src/authorization/CodeBeam.UltimateAuth.Authorization.Contracts/Responses/UserRolesResponse.cs rename to src/authorization/CodeBeam.UltimateAuth.Authorization.Contracts/Responses/UserRolesGetResult.cs index 1acc9da8..6eeaa3eb 100644 --- a/src/authorization/CodeBeam.UltimateAuth.Authorization.Contracts/Responses/UserRolesResponse.cs +++ b/src/authorization/CodeBeam.UltimateAuth.Authorization.Contracts/Responses/UserRolesGetResult.cs @@ -3,7 +3,7 @@ namespace CodeBeam.UltimateAuth.Authorization.Contracts; -public sealed record UserRolesResponse +public sealed record UserRolesGetResult { public required UserKey UserKey { get; init; } public required PagedResult Roles { get; init; } diff --git a/src/authorization/CodeBeam.UltimateAuth.Authorization.Reference/Endpoints/AuthorizationEndpointHandler.cs b/src/authorization/CodeBeam.UltimateAuth.Authorization.Reference/Endpoints/AuthorizationEndpointHandler.cs index 2c52e1b3..c221688d 100644 --- a/src/authorization/CodeBeam.UltimateAuth.Authorization.Reference/Endpoints/AuthorizationEndpointHandler.cs +++ b/src/authorization/CodeBeam.UltimateAuth.Authorization.Reference/Endpoints/AuthorizationEndpointHandler.cs @@ -79,7 +79,7 @@ public async Task GetMyRolesAsync(HttpContext ctx) ); var roles = await _userRoles.GetRolesAsync(accessContext, flow.UserKey!.Value, req, ctx.RequestAborted); - return Results.Ok(new UserRolesResponse + return Results.Ok(new UserRolesGetResult { UserKey = flow.UserKey!.Value, Roles = roles @@ -104,7 +104,7 @@ public async Task GetUserRolesAsync(UserKey userKey, HttpContext ctx) var roles = await _userRoles.GetRolesAsync(accessContext, userKey, req, ctx.RequestAborted); - return Results.Ok(new UserRolesResponse + return Results.Ok(new UserRolesGetResult { UserKey = userKey, Roles = roles diff --git a/src/authorization/CodeBeam.UltimateAuth.Authorization.Reference/Services/RoleService.cs b/src/authorization/CodeBeam.UltimateAuth.Authorization.Reference/Services/RoleService.cs index 6ffed5e2..37f97f82 100644 --- a/src/authorization/CodeBeam.UltimateAuth.Authorization.Reference/Services/RoleService.cs +++ b/src/authorization/CodeBeam.UltimateAuth.Authorization.Reference/Services/RoleService.cs @@ -63,11 +63,11 @@ public async Task RenameAsync(AccessContext context, RoleId roleId, string newNa await _accessOrchestrator.ExecuteAsync(context, cmd, ct); } - public async Task DeleteAsync(AccessContext context, RoleId roleId, DeleteMode mode, CancellationToken ct = default) + public async Task DeleteAsync(AccessContext context, RoleId roleId, DeleteMode mode, CancellationToken ct = default) { ct.ThrowIfCancellationRequested(); - var cmd = new AccessCommand(async innerCt => + var cmd = new AccessCommand(async innerCt => { var key = new RoleKey(context.ResourceTenant, roleId); var roleStore = _roleFactory.Create(context.ResourceTenant); @@ -81,7 +81,7 @@ public async Task DeleteAsync(AccessContext context, RoleId ro await userRoleStore.RemoveAssignmentsByRoleAsync(roleId, innerCt); await roleStore.DeleteAsync(key, role.Version, mode, _clock.UtcNow, innerCt); - return new DeleteRoleResult + return new RoleDeleteResult { RoleId = roleId, RemovedAssignments = removed, diff --git a/src/authorization/CodeBeam.UltimateAuth.Authorization/Abstractions/IRoleService.cs b/src/authorization/CodeBeam.UltimateAuth.Authorization/Abstractions/IRoleService.cs index 948959f6..cae77d01 100644 --- a/src/authorization/CodeBeam.UltimateAuth.Authorization/Abstractions/IRoleService.cs +++ b/src/authorization/CodeBeam.UltimateAuth.Authorization/Abstractions/IRoleService.cs @@ -9,7 +9,7 @@ public interface IRoleService Task RenameAsync(AccessContext context, RoleId roleId, string newName, CancellationToken ct = default); - Task DeleteAsync(AccessContext context, RoleId roleId, DeleteMode mode, CancellationToken ct = default); + Task DeleteAsync(AccessContext context, RoleId roleId, DeleteMode mode, CancellationToken ct = default); Task SetPermissionsAsync(AccessContext context, RoleId roleId, IEnumerable permissions, CancellationToken ct = default); diff --git a/src/client/CodeBeam.UltimateAuth.Client/Services/Abstractions/IAuthorizationClient.cs b/src/client/CodeBeam.UltimateAuth.Client/Services/Abstractions/IAuthorizationClient.cs index 3e848763..8f339558 100644 --- a/src/client/CodeBeam.UltimateAuth.Client/Services/Abstractions/IAuthorizationClient.cs +++ b/src/client/CodeBeam.UltimateAuth.Client/Services/Abstractions/IAuthorizationClient.cs @@ -49,7 +49,7 @@ public interface IAuthorizationClient /// /// Results may be paginated. Use to control paging behavior. /// - Task> GetMyRolesAsync(PageRequest? request = null); + Task> GetMyRolesAsync(PageRequest? request = null); /// /// Retrieves roles assigned to a specific user. @@ -57,7 +57,7 @@ public interface IAuthorizationClient /// /// Requires appropriate administrative permissions. /// - Task> GetUserRolesAsync(UserKey userKey, PageRequest? request = null); + Task> GetUserRolesAsync(UserKey userKey, PageRequest? request = null); /// /// Assigns a role to a user. @@ -108,5 +108,5 @@ public interface IAuthorizationClient /// /// Deleting a role removes it from all users. /// - Task> DeleteRoleAsync(DeleteRoleRequest request); + Task> DeleteRoleAsync(DeleteRoleRequest request); } diff --git a/src/client/CodeBeam.UltimateAuth.Client/Services/Abstractions/ICredentialClient.cs b/src/client/CodeBeam.UltimateAuth.Client/Services/Abstractions/ICredentialClient.cs index 5715505d..ec28848d 100644 --- a/src/client/CodeBeam.UltimateAuth.Client/Services/Abstractions/ICredentialClient.cs +++ b/src/client/CodeBeam.UltimateAuth.Client/Services/Abstractions/ICredentialClient.cs @@ -39,7 +39,7 @@ public interface ICredentialClient /// /// Typically used for initial password setup or adding alternative credentials. /// - Task> AddMyAsync(AddCredentialRequest request); + Task> AddMyAsync(AddCredentialRequest request); /// /// Changes the credential of the current user. @@ -47,7 +47,7 @@ public interface ICredentialClient /// /// May require the current credential for verification depending on policy. /// - Task> ChangeMyAsync(ChangeCredentialRequest request); + Task> ChangeMyAsync(ChangeCredentialRequest request); /// /// Revokes the current user's credential. @@ -63,15 +63,15 @@ public interface ICredentialClient /// /// This typically issues a verification step (e.g., email or OTP). /// - Task> BeginResetMyAsync(BeginResetCredentialRequest request); + Task> BeginResetAsync(BeginResetCredentialRequest request); /// /// Completes the credential reset process for the current user. /// /// - /// Must be called after a successful . + /// Must be called after a successful . /// - Task> CompleteResetMyAsync(CompleteResetCredentialRequest request); + Task> CompleteResetAsync(CompleteResetCredentialRequest request); /// @@ -80,7 +80,7 @@ public interface ICredentialClient /// /// Requires administrative privileges. /// - Task> AddUserAsync(UserKey userKey, AddCredentialRequest request); + Task> AddUserAsync(UserKey userKey, AddCredentialRequest request); /// /// Changes the credential of a specific user. @@ -88,7 +88,7 @@ public interface ICredentialClient /// /// Typically used for administrative resets or overrides. /// - Task> ChangeUserAsync(UserKey userKey, ChangeCredentialRequest request); + Task> ChangeUserAsync(UserKey userKey, ChangeCredentialRequest request); /// /// Revokes a credential for a specific user. @@ -98,7 +98,7 @@ public interface ICredentialClient /// /// Starts the credential reset process for a specific user. /// - Task> BeginResetUserAsync(UserKey userKey, BeginResetCredentialRequest request); + Task> BeginResetUserAsync(UserKey userKey, BeginResetCredentialRequest request); /// /// Completes the credential reset process for a specific user. diff --git a/src/client/CodeBeam.UltimateAuth.Client/Services/UAuthAuthorizationClient.cs b/src/client/CodeBeam.UltimateAuth.Client/Services/UAuthAuthorizationClient.cs index bc4d79c7..7f5fac85 100644 --- a/src/client/CodeBeam.UltimateAuth.Client/Services/UAuthAuthorizationClient.cs +++ b/src/client/CodeBeam.UltimateAuth.Client/Services/UAuthAuthorizationClient.cs @@ -29,18 +29,18 @@ public async Task> CheckAsync(AuthorizationChec return UAuthResultMapper.FromJson(raw); } - public async Task> GetMyRolesAsync(PageRequest? request = null) + public async Task> GetMyRolesAsync(PageRequest? request = null) { request ??= new PageRequest(); var raw = await _request.SendJsonAsync(Url("/me/authorization/roles/get"), request); - return UAuthResultMapper.FromJson(raw); + return UAuthResultMapper.FromJson(raw); } - public async Task> GetUserRolesAsync(UserKey userKey, PageRequest? request = null) + public async Task> GetUserRolesAsync(UserKey userKey, PageRequest? request = null) { request ??= new PageRequest(); var raw = await _request.SendJsonAsync(Url($"/admin/authorization/users/{userKey.Value}/roles/get"), request); - return UAuthResultMapper.FromJson(raw); + return UAuthResultMapper.FromJson(raw); } public async Task AssignRoleToUserAsync(AssignRoleRequest request) @@ -109,10 +109,10 @@ public async Task SetRolePermissionsAsync(SetRolePermissionsRequest return result; } - public async Task> DeleteRoleAsync(DeleteRoleRequest request) + public async Task> DeleteRoleAsync(DeleteRoleRequest request) { var raw = await _request.SendJsonAsync(Url($"/admin/authorization/roles/{request.Id.Value}/delete"), request); - var result = UAuthResultMapper.FromJson(raw); + var result = UAuthResultMapper.FromJson(raw); if (result.IsSuccess) { diff --git a/src/client/CodeBeam.UltimateAuth.Client/Services/UAuthCredentialClient.cs b/src/client/CodeBeam.UltimateAuth.Client/Services/UAuthCredentialClient.cs index dd70b892..264b7f44 100644 --- a/src/client/CodeBeam.UltimateAuth.Client/Services/UAuthCredentialClient.cs +++ b/src/client/CodeBeam.UltimateAuth.Client/Services/UAuthCredentialClient.cs @@ -23,16 +23,16 @@ public UAuthCredentialClient(IUAuthRequestClient request, IUAuthClientEvents eve private string Url(string path) => UAuthUrlBuilder.Build(_options.Endpoints.BasePath, path, _options.MultiTenant); - public async Task> AddMyAsync(AddCredentialRequest request) + public async Task> AddMyAsync(AddCredentialRequest request) { var raw = await _request.SendJsonAsync(Url("/me/credentials/add"), request); - return UAuthResultMapper.FromJson(raw); + return UAuthResultMapper.FromJson(raw); } - public async Task> ChangeMyAsync(ChangeCredentialRequest request) + public async Task> ChangeMyAsync(ChangeCredentialRequest request) { var raw = await _request.SendJsonAsync(Url("/me/credentials/change"), request); - var result = UAuthResultMapper.FromJson(raw); + var result = UAuthResultMapper.FromJson(raw); if (result.IsSuccess) { @@ -57,13 +57,13 @@ await _events.PublishAsync( return result; } - public async Task> BeginResetMyAsync(BeginResetCredentialRequest request) + public async Task> BeginResetAsync(BeginResetCredentialRequest request) { var raw = await _request.SendJsonAsync(Url($"/me/credentials/reset/begin"), request); - return UAuthResultMapper.FromJson(raw); + return UAuthResultMapper.FromJson(raw); } - public async Task> CompleteResetMyAsync(CompleteResetCredentialRequest request) + public async Task> CompleteResetAsync(CompleteResetCredentialRequest request) { var raw = await _request.SendJsonAsync(Url("/me/credentials/reset/complete"), request); @@ -78,16 +78,16 @@ await _events.PublishAsync( return result; } - public async Task> AddUserAsync(UserKey userKey, AddCredentialRequest request) + public async Task> AddUserAsync(UserKey userKey, AddCredentialRequest request) { var raw = await _request.SendJsonAsync(Url($"/admin/users/{userKey.Value}/credentials/add"), request); - return UAuthResultMapper.FromJson(raw); + return UAuthResultMapper.FromJson(raw); } - public async Task> ChangeUserAsync(UserKey userKey, ChangeCredentialRequest request) + public async Task> ChangeUserAsync(UserKey userKey, ChangeCredentialRequest request) { var raw = await _request.SendJsonAsync(Url($"/admin/users/{userKey.Value}/credentials/change"), request); - return UAuthResultMapper.FromJson(raw); + return UAuthResultMapper.FromJson(raw); } public async Task RevokeUserAsync(UserKey userKey, RevokeCredentialRequest request) @@ -96,10 +96,10 @@ public async Task RevokeUserAsync(UserKey userKey, RevokeCredential return UAuthResultMapper.From(raw); } - public async Task> BeginResetUserAsync(UserKey userKey, BeginResetCredentialRequest request) + public async Task> BeginResetUserAsync(UserKey userKey, BeginResetCredentialRequest request) { var raw = await _request.SendJsonAsync(Url($"/admin/users/{userKey.Value}/credentials/reset/begin"), request); - return UAuthResultMapper.FromJson(raw); + return UAuthResultMapper.FromJson(raw); } public async Task> CompleteResetUserAsync(UserKey userKey, CompleteResetCredentialRequest request) diff --git a/src/credentials/CodeBeam.UltimateAuth.Credentials.Contracts/Responses/AddCredentialResult.cs b/src/credentials/CodeBeam.UltimateAuth.Credentials.Contracts/Responses/CredentialAddResult.cs similarity index 77% rename from src/credentials/CodeBeam.UltimateAuth.Credentials.Contracts/Responses/AddCredentialResult.cs rename to src/credentials/CodeBeam.UltimateAuth.Credentials.Contracts/Responses/CredentialAddResult.cs index cb969cae..db0e9781 100644 --- a/src/credentials/CodeBeam.UltimateAuth.Credentials.Contracts/Responses/AddCredentialResult.cs +++ b/src/credentials/CodeBeam.UltimateAuth.Credentials.Contracts/Responses/CredentialAddResult.cs @@ -2,7 +2,7 @@ namespace CodeBeam.UltimateAuth.Credentials.Contracts; -public sealed record AddCredentialResult +public sealed record CredentialAddResult { public bool IsSuccess { get; init; } @@ -11,7 +11,7 @@ public sealed record AddCredentialResult public Guid? Id { get; set; } public CredentialType? Type { get; init; } - public static AddCredentialResult Success(Guid id, CredentialType type) + public static CredentialAddResult Success(Guid id, CredentialType type) => new() { IsSuccess = true, @@ -20,7 +20,7 @@ public static AddCredentialResult Success(Guid id, CredentialType type) Error = null }; - public static AddCredentialResult Fail(string error) + public static CredentialAddResult Fail(string error) => new() { IsSuccess = false, diff --git a/src/credentials/CodeBeam.UltimateAuth.Credentials.Contracts/Responses/BeginCredentialResetResult.cs b/src/credentials/CodeBeam.UltimateAuth.Credentials.Contracts/Responses/CredentialBeginResetResult.cs similarity index 70% rename from src/credentials/CodeBeam.UltimateAuth.Credentials.Contracts/Responses/BeginCredentialResetResult.cs rename to src/credentials/CodeBeam.UltimateAuth.Credentials.Contracts/Responses/CredentialBeginResetResult.cs index db8d2c8c..16361ce5 100644 --- a/src/credentials/CodeBeam.UltimateAuth.Credentials.Contracts/Responses/BeginCredentialResetResult.cs +++ b/src/credentials/CodeBeam.UltimateAuth.Credentials.Contracts/Responses/CredentialBeginResetResult.cs @@ -1,6 +1,6 @@ namespace CodeBeam.UltimateAuth.Credentials.Contracts; -public sealed record BeginCredentialResetResult +public sealed record CredentialBeginResetResult { public DateTimeOffset ExpiresAt { get; init; } } diff --git a/src/credentials/CodeBeam.UltimateAuth.Credentials.Contracts/Responses/ChangeCredentialResult.cs b/src/credentials/CodeBeam.UltimateAuth.Credentials.Contracts/Responses/CredentialChangeResult.cs similarity index 71% rename from src/credentials/CodeBeam.UltimateAuth.Credentials.Contracts/Responses/ChangeCredentialResult.cs rename to src/credentials/CodeBeam.UltimateAuth.Credentials.Contracts/Responses/CredentialChangeResult.cs index 6a78c338..1cf286d3 100644 --- a/src/credentials/CodeBeam.UltimateAuth.Credentials.Contracts/Responses/ChangeCredentialResult.cs +++ b/src/credentials/CodeBeam.UltimateAuth.Credentials.Contracts/Responses/CredentialChangeResult.cs @@ -2,7 +2,7 @@ namespace CodeBeam.UltimateAuth.Credentials.Contracts; -public sealed record ChangeCredentialResult +public sealed record CredentialChangeResult { public bool IsSuccess { get; init; } @@ -10,14 +10,14 @@ public sealed record ChangeCredentialResult public CredentialType? Type { get; init; } - public static ChangeCredentialResult Success(CredentialType type) + public static CredentialChangeResult Success(CredentialType type) => new() { IsSuccess = true, Type = type }; - public static ChangeCredentialResult Fail(string error) + public static CredentialChangeResult Fail(string error) => new() { IsSuccess = false, diff --git a/src/credentials/CodeBeam.UltimateAuth.Credentials.Contracts/Responses/GetCredentialsResult.cs b/src/credentials/CodeBeam.UltimateAuth.Credentials.Contracts/Responses/CredentialsGetResult.cs similarity index 80% rename from src/credentials/CodeBeam.UltimateAuth.Credentials.Contracts/Responses/GetCredentialsResult.cs rename to src/credentials/CodeBeam.UltimateAuth.Credentials.Contracts/Responses/CredentialsGetResult.cs index 8a8a5315..5b9fe353 100644 --- a/src/credentials/CodeBeam.UltimateAuth.Credentials.Contracts/Responses/GetCredentialsResult.cs +++ b/src/credentials/CodeBeam.UltimateAuth.Credentials.Contracts/Responses/CredentialsGetResult.cs @@ -1,6 +1,6 @@ namespace CodeBeam.UltimateAuth.Credentials.Contracts; -public sealed record GetCredentialsResult +public sealed record CredentialsGetResult { public IReadOnlyCollection Credentials { get; init; } = Array.Empty(); } diff --git a/src/credentials/CodeBeam.UltimateAuth.Credentials.Reference/Services/CredentialManagementService.cs b/src/credentials/CodeBeam.UltimateAuth.Credentials.Reference/Services/CredentialManagementService.cs index 65a462aa..c41aff30 100644 --- a/src/credentials/CodeBeam.UltimateAuth.Credentials.Reference/Services/CredentialManagementService.cs +++ b/src/credentials/CodeBeam.UltimateAuth.Credentials.Reference/Services/CredentialManagementService.cs @@ -60,11 +60,11 @@ public CredentialManagementService( _clock = clock; } - public async Task GetAllAsync(AccessContext context, CancellationToken ct = default) + public async Task GetAllAsync(AccessContext context, CancellationToken ct = default) { ct.ThrowIfCancellationRequested(); - var cmd = new AccessCommand(async innerCt => + var cmd = new AccessCommand(async innerCt => { var subjectUser = context.GetTargetUserKey(); var now = _clock.UtcNow; @@ -86,17 +86,17 @@ public async Task GetAllAsync(AccessContext context, Cance }) .ToArray(); - return new GetCredentialsResult { Credentials = dtos }; + return new CredentialsGetResult { Credentials = dtos }; }); return await _accessOrchestrator.ExecuteAsync(context, cmd, ct); } - public async Task AddAsync(AccessContext context, AddCredentialRequest request, CancellationToken ct = default) + public async Task AddAsync(AccessContext context, AddCredentialRequest request, CancellationToken ct = default) { ct.ThrowIfCancellationRequested(); - var cmd = new AccessCommand(async innerCt => + var cmd = new AccessCommand(async innerCt => { var subjectUser = context.GetTargetUserKey(); var now = _clock.UtcNow; @@ -115,17 +115,17 @@ public async Task AddAsync(AccessContext context, AddCreden var store = _credentialsFactory.Create(context.ResourceTenant); await store.AddAsync(credential, innerCt); - return AddCredentialResult.Success(credential.Id, credential.Type); + return CredentialAddResult.Success(credential.Id, credential.Type); }); return await _accessOrchestrator.ExecuteAsync(context, cmd, ct); } - public async Task ChangeSecretAsync(AccessContext context, ChangeCredentialRequest request, CancellationToken ct = default) + public async Task ChangeSecretAsync(AccessContext context, ChangeCredentialRequest request, CancellationToken ct = default) { ct.ThrowIfCancellationRequested(); - var cmd = new AccessCommand(async innerCt => + var cmd = new AccessCommand(async innerCt => { var subjectUser = context.GetTargetUserKey(); var now = _clock.UtcNow; @@ -165,7 +165,7 @@ await ApplyCredentialSessionPolicyAsync(context.ResourceTenant, subjectUser, con : CredentialChangeReason.AdminChange, context.ActorChainId, now, innerCt); - return ChangeCredentialResult.Success(pwd.Type); + return CredentialChangeResult.Success(pwd.Type); }); return await _accessOrchestrator.ExecuteAsync(context, cmd, ct); @@ -199,11 +199,11 @@ public async Task RevokeAsync(AccessContext context, Rev return await _accessOrchestrator.ExecuteAsync(context, cmd, ct); } - public async Task BeginResetAsync(AccessContext context, BeginResetCredentialRequest request, CancellationToken ct = default) + public async Task BeginResetAsync(AccessContext context, BeginResetCredentialRequest request, CancellationToken ct = default) { ct.ThrowIfCancellationRequested(); - var cmd = new AccessCommand(async innerCt => + var cmd = new AccessCommand(async innerCt => { if (_resetNotifier is NotConfiguredCredentialResetNotifier) @@ -224,7 +224,7 @@ public async Task BeginResetAsync(AccessContext cont var validity = _options.ResetCredential.TokenValidity; var expiresAt = now.Add(validity); - var result = new BeginCredentialResetResult + var result = new CredentialBeginResetResult { ExpiresAt = expiresAt }; diff --git a/src/credentials/CodeBeam.UltimateAuth.Credentials.Reference/Services/ICredentialManagementService.cs b/src/credentials/CodeBeam.UltimateAuth.Credentials.Reference/Services/ICredentialManagementService.cs index 4816c180..ee0f7642 100644 --- a/src/credentials/CodeBeam.UltimateAuth.Credentials.Reference/Services/ICredentialManagementService.cs +++ b/src/credentials/CodeBeam.UltimateAuth.Credentials.Reference/Services/ICredentialManagementService.cs @@ -5,15 +5,15 @@ namespace CodeBeam.UltimateAuth.Credentials.Reference; public interface ICredentialManagementService { - Task GetAllAsync(AccessContext context, CancellationToken ct = default); + Task GetAllAsync(AccessContext context, CancellationToken ct = default); - Task AddAsync(AccessContext context, AddCredentialRequest request, CancellationToken ct = default); + Task AddAsync(AccessContext context, AddCredentialRequest request, CancellationToken ct = default); - Task ChangeSecretAsync(AccessContext context, ChangeCredentialRequest request, CancellationToken ct = default); + Task ChangeSecretAsync(AccessContext context, ChangeCredentialRequest request, CancellationToken ct = default); Task RevokeAsync(AccessContext context, RevokeCredentialRequest request, CancellationToken ct = default); - Task BeginResetAsync(AccessContext context, BeginResetCredentialRequest request, CancellationToken ct = default); + Task BeginResetAsync(AccessContext context, BeginResetCredentialRequest request, CancellationToken ct = default); Task CompleteResetAsync(AccessContext context, CompleteResetCredentialRequest request, CancellationToken ct = default); diff --git a/src/users/CodeBeam.UltimateAuth.Users.Contracts/Requests/LogoutOtherDevicesRequest.cs b/src/users/CodeBeam.UltimateAuth.Users.Contracts/Requests/LogoutOtherDevicesRequest.cs index ec7763df..11044b73 100644 --- a/src/users/CodeBeam.UltimateAuth.Users.Contracts/Requests/LogoutOtherDevicesRequest.cs +++ b/src/users/CodeBeam.UltimateAuth.Users.Contracts/Requests/LogoutOtherDevicesRequest.cs @@ -4,5 +4,5 @@ namespace CodeBeam.UltimateAuth.Users.Contracts; public sealed record LogoutOtherDevicesRequest { - public required SessionChainId CurrentChainId { get; init; } + public required SessionChainId ExceptChainId { get; init; } } diff --git a/src/users/CodeBeam.UltimateAuth.Users.Reference/Contracts/UserLifecycleQuery.cs b/src/users/CodeBeam.UltimateAuth.Users.Contracts/Requests/UserLifecycleQuery.cs similarity index 80% rename from src/users/CodeBeam.UltimateAuth.Users.Reference/Contracts/UserLifecycleQuery.cs rename to src/users/CodeBeam.UltimateAuth.Users.Contracts/Requests/UserLifecycleQuery.cs index d308ff45..bd96e35e 100644 --- a/src/users/CodeBeam.UltimateAuth.Users.Reference/Contracts/UserLifecycleQuery.cs +++ b/src/users/CodeBeam.UltimateAuth.Users.Contracts/Requests/UserLifecycleQuery.cs @@ -1,6 +1,6 @@ using CodeBeam.UltimateAuth.Core.Contracts; -namespace CodeBeam.UltimateAuth.Users.Reference; +namespace CodeBeam.UltimateAuth.Users.Contracts; public sealed record UserLifecycleQuery : PageRequest { diff --git a/src/users/CodeBeam.UltimateAuth.Users.Reference/Contracts/UserProfileQuery.cs b/src/users/CodeBeam.UltimateAuth.Users.Contracts/Requests/UserProfileQuery.cs similarity index 67% rename from src/users/CodeBeam.UltimateAuth.Users.Reference/Contracts/UserProfileQuery.cs rename to src/users/CodeBeam.UltimateAuth.Users.Contracts/Requests/UserProfileQuery.cs index 6e122100..e3748ee6 100644 --- a/src/users/CodeBeam.UltimateAuth.Users.Reference/Contracts/UserProfileQuery.cs +++ b/src/users/CodeBeam.UltimateAuth.Users.Contracts/Requests/UserProfileQuery.cs @@ -1,7 +1,6 @@ using CodeBeam.UltimateAuth.Core.Contracts; -using CodeBeam.UltimateAuth.Users.Contracts; -namespace CodeBeam.UltimateAuth.Users.Reference; +namespace CodeBeam.UltimateAuth.Users.Contracts; public sealed record UserProfileQuery : PageRequest { diff --git a/src/users/CodeBeam.UltimateAuth.Users.Contracts/Responses/BeginMfaSetupResult.cs b/src/users/CodeBeam.UltimateAuth.Users.Contracts/Responses/BeginMfaSetupResult.cs deleted file mode 100644 index 85bee388..00000000 --- a/src/users/CodeBeam.UltimateAuth.Users.Contracts/Responses/BeginMfaSetupResult.cs +++ /dev/null @@ -1,8 +0,0 @@ -//namespace CodeBeam.UltimateAuth.Users.Contracts; - -//public sealed record BeginMfaSetupResult -//{ -// public MfaMethod Method { get; init; } -// public string? SharedSecret { get; init; } // TOTP -// public string? QrCodeUri { get; init; } // TOTP -//} diff --git a/src/users/CodeBeam.UltimateAuth.Users.Contracts/Responses/IdentifierExistenceResult.cs b/src/users/CodeBeam.UltimateAuth.Users.Contracts/Responses/UserIdentifierExistenceResult.cs similarity index 80% rename from src/users/CodeBeam.UltimateAuth.Users.Contracts/Responses/IdentifierExistenceResult.cs rename to src/users/CodeBeam.UltimateAuth.Users.Contracts/Responses/UserIdentifierExistenceResult.cs index ec234ff4..061c7ddd 100644 --- a/src/users/CodeBeam.UltimateAuth.Users.Contracts/Responses/IdentifierExistenceResult.cs +++ b/src/users/CodeBeam.UltimateAuth.Users.Contracts/Responses/UserIdentifierExistenceResult.cs @@ -2,7 +2,7 @@ namespace CodeBeam.UltimateAuth.Users.Contracts; -public sealed record IdentifierExistenceResult( +public sealed record UserIdentifierExistenceResult( bool Exists, UserKey? OwnerUserKey = null, Guid? OwnerIdentifierId = null, diff --git a/src/users/CodeBeam.UltimateAuth.Users.Contracts/Responses/IdentifierExistsResponse.cs b/src/users/CodeBeam.UltimateAuth.Users.Contracts/Responses/UserIdentifierExistsResponse.cs similarity index 65% rename from src/users/CodeBeam.UltimateAuth.Users.Contracts/Responses/IdentifierExistsResponse.cs rename to src/users/CodeBeam.UltimateAuth.Users.Contracts/Responses/UserIdentifierExistsResponse.cs index 0d2150d1..2a419067 100644 --- a/src/users/CodeBeam.UltimateAuth.Users.Contracts/Responses/IdentifierExistsResponse.cs +++ b/src/users/CodeBeam.UltimateAuth.Users.Contracts/Responses/UserIdentifierExistsResponse.cs @@ -1,6 +1,6 @@ namespace CodeBeam.UltimateAuth.Users.Contracts; -public sealed class IdentifierExistsResponse +public sealed class UserIdentifierExistsResponse { public bool Exists { get; set; } } diff --git a/src/users/CodeBeam.UltimateAuth.Users.EntityFrameworkCore/Stores/EfCoreUserIdentifierStore.cs b/src/users/CodeBeam.UltimateAuth.Users.EntityFrameworkCore/Stores/EfCoreUserIdentifierStore.cs index 2974b556..6d20394d 100644 --- a/src/users/CodeBeam.UltimateAuth.Users.EntityFrameworkCore/Stores/EfCoreUserIdentifierStore.cs +++ b/src/users/CodeBeam.UltimateAuth.Users.EntityFrameworkCore/Stores/EfCoreUserIdentifierStore.cs @@ -35,7 +35,7 @@ public async Task ExistsAsync(Guid key, CancellationToken ct = default) ct); } - public async Task ExistsAsync(IdentifierExistenceQuery query, CancellationToken ct = default) + public async Task ExistsAsync(IdentifierExistenceQuery query, CancellationToken ct = default) { ct.ThrowIfCancellationRequested(); @@ -74,9 +74,9 @@ public async Task ExistsAsync(IdentifierExistenceQuer .FirstOrDefaultAsync(ct); if (match is null) - return new IdentifierExistenceResult(false); + return new UserIdentifierExistenceResult(false); - return new IdentifierExistenceResult( + return new UserIdentifierExistenceResult( true, match.UserKey, match.Id, diff --git a/src/users/CodeBeam.UltimateAuth.Users.EntityFrameworkCore/Stores/EfCoreUserLifecycleStore.cs b/src/users/CodeBeam.UltimateAuth.Users.EntityFrameworkCore/Stores/EfCoreUserLifecycleStore.cs index 31ce250c..5cb276b8 100644 --- a/src/users/CodeBeam.UltimateAuth.Users.EntityFrameworkCore/Stores/EfCoreUserLifecycleStore.cs +++ b/src/users/CodeBeam.UltimateAuth.Users.EntityFrameworkCore/Stores/EfCoreUserLifecycleStore.cs @@ -2,6 +2,7 @@ using CodeBeam.UltimateAuth.Core.Contracts; using CodeBeam.UltimateAuth.Core.Errors; using CodeBeam.UltimateAuth.Core.MultiTenancy; +using CodeBeam.UltimateAuth.Users.Contracts; using CodeBeam.UltimateAuth.Users.Reference; using Microsoft.EntityFrameworkCore; diff --git a/src/users/CodeBeam.UltimateAuth.Users.InMemory/Stores/InMemoryUserIdentifierStore.cs b/src/users/CodeBeam.UltimateAuth.Users.InMemory/Stores/InMemoryUserIdentifierStore.cs index 6c26db5c..beb61f6b 100644 --- a/src/users/CodeBeam.UltimateAuth.Users.InMemory/Stores/InMemoryUserIdentifierStore.cs +++ b/src/users/CodeBeam.UltimateAuth.Users.InMemory/Stores/InMemoryUserIdentifierStore.cs @@ -20,7 +20,7 @@ public InMemoryUserIdentifierStore(TenantExecutionContext tenant, InMemoryAtomic _pagination = pagination; } - public Task ExistsAsync(IdentifierExistenceQuery query, CancellationToken ct = default) + public Task ExistsAsync(IdentifierExistenceQuery query, CancellationToken ct = default) { ct.ThrowIfCancellationRequested(); @@ -50,10 +50,10 @@ public Task ExistsAsync(IdentifierExistenceQuery quer var match = candidates.FirstOrDefault(); if (match is null) - return Task.FromResult(new IdentifierExistenceResult(false)); + return Task.FromResult(new UserIdentifierExistenceResult(false)); return Task.FromResult( - new IdentifierExistenceResult(true, match.UserKey, match.Id, match.IsPrimary)); + new UserIdentifierExistenceResult(true, match.UserKey, match.Id, match.IsPrimary)); } public Task GetAsync(UserIdentifierType type, string normalizedValue, CancellationToken ct = default) diff --git a/src/users/CodeBeam.UltimateAuth.Users.InMemory/Stores/InMemoryUserLifecycleStore.cs b/src/users/CodeBeam.UltimateAuth.Users.InMemory/Stores/InMemoryUserLifecycleStore.cs index 5bf7253a..a8cd29cf 100644 --- a/src/users/CodeBeam.UltimateAuth.Users.InMemory/Stores/InMemoryUserLifecycleStore.cs +++ b/src/users/CodeBeam.UltimateAuth.Users.InMemory/Stores/InMemoryUserLifecycleStore.cs @@ -2,6 +2,7 @@ using CodeBeam.UltimateAuth.Core.Contracts; using CodeBeam.UltimateAuth.Core.MultiTenancy; using CodeBeam.UltimateAuth.InMemory; +using CodeBeam.UltimateAuth.Users.Contracts; using CodeBeam.UltimateAuth.Users.Reference; namespace CodeBeam.UltimateAuth.Users.InMemory; diff --git a/src/users/CodeBeam.UltimateAuth.Users.Reference/Endpoints/UserEndpointHandler.cs b/src/users/CodeBeam.UltimateAuth.Users.Reference/Endpoints/UserEndpointHandler.cs index 52a9e2a3..9d14cd2d 100644 --- a/src/users/CodeBeam.UltimateAuth.Users.Reference/Endpoints/UserEndpointHandler.cs +++ b/src/users/CodeBeam.UltimateAuth.Users.Reference/Endpoints/UserEndpointHandler.cs @@ -366,7 +366,7 @@ public async Task IdentifierExistsSelfAsync(HttpContext ctx) IdentifierExistenceScope.WithinUser, ctx.RequestAborted); - return Results.Ok(new IdentifierExistsResponse + return Results.Ok(new UserIdentifierExistsResponse { Exists = exists }); @@ -393,7 +393,7 @@ public async Task IdentifierExistsAdminAsync(UserKey userKey, HttpConte IdentifierExistenceScope.TenantAny, ctx.RequestAborted); - return Results.Ok(new IdentifierExistsResponse + return Results.Ok(new UserIdentifierExistsResponse { Exists = exists }); diff --git a/src/users/CodeBeam.UltimateAuth.Users.Reference/Services/UserIdentifierAvailabilityService.cs b/src/users/CodeBeam.UltimateAuth.Users.Reference/Services/UserIdentifierAvailabilityService.cs index 7778eed5..ea6b2086 100644 --- a/src/users/CodeBeam.UltimateAuth.Users.Reference/Services/UserIdentifierAvailabilityService.cs +++ b/src/users/CodeBeam.UltimateAuth.Users.Reference/Services/UserIdentifierAvailabilityService.cs @@ -3,9 +3,10 @@ using CodeBeam.UltimateAuth.Server.Options; using CodeBeam.UltimateAuth.Server.Services; using CodeBeam.UltimateAuth.Users.Contracts; -using CodeBeam.UltimateAuth.Users.Reference; using Microsoft.Extensions.Options; +namespace CodeBeam.UltimateAuth.Users.Reference; + public sealed class UserIdentifierAvailabilityService : IUserIdentifierAvailabilityService { private readonly IUserIdentifierValidator _validator; diff --git a/src/users/CodeBeam.UltimateAuth.Users.Reference/Stores/IUserIdentifierStore.cs b/src/users/CodeBeam.UltimateAuth.Users.Reference/Stores/IUserIdentifierStore.cs index 04e004ad..722af92a 100644 --- a/src/users/CodeBeam.UltimateAuth.Users.Reference/Stores/IUserIdentifierStore.cs +++ b/src/users/CodeBeam.UltimateAuth.Users.Reference/Stores/IUserIdentifierStore.cs @@ -7,7 +7,7 @@ namespace CodeBeam.UltimateAuth.Users.Reference; public interface IUserIdentifierStore : IVersionedStore { - Task ExistsAsync(IdentifierExistenceQuery query, CancellationToken ct = default); + Task ExistsAsync(IdentifierExistenceQuery query, CancellationToken ct = default); Task> GetByUserAsync(UserKey userKey, CancellationToken ct = default); Task GetByIdAsync(Guid id, CancellationToken ct = default); diff --git a/src/users/CodeBeam.UltimateAuth.Users.Reference/Stores/IUserLifecycleStore.cs b/src/users/CodeBeam.UltimateAuth.Users.Reference/Stores/IUserLifecycleStore.cs index c687f6da..4d44624f 100644 --- a/src/users/CodeBeam.UltimateAuth.Users.Reference/Stores/IUserLifecycleStore.cs +++ b/src/users/CodeBeam.UltimateAuth.Users.Reference/Stores/IUserLifecycleStore.cs @@ -1,5 +1,6 @@ using CodeBeam.UltimateAuth.Core.Abstractions; using CodeBeam.UltimateAuth.Core.Contracts; +using CodeBeam.UltimateAuth.Users.Contracts; namespace CodeBeam.UltimateAuth.Users.Reference; diff --git a/src/users/CodeBeam.UltimateAuth.Users/Abstractions/IUserIdentifierVerifier.cs b/src/users/CodeBeam.UltimateAuth.Users/Abstractions/IUserIdentifierVerifier.cs index dc634806..64dc47a1 100644 --- a/src/users/CodeBeam.UltimateAuth.Users/Abstractions/IUserIdentifierVerifier.cs +++ b/src/users/CodeBeam.UltimateAuth.Users/Abstractions/IUserIdentifierVerifier.cs @@ -2,6 +2,8 @@ using CodeBeam.UltimateAuth.Core.MultiTenancy; using CodeBeam.UltimateAuth.Users.Contracts; +namespace CodeBeam.UltimateAuth.Users; + /// /// Validates identifier ownership proof on the server. /// diff --git a/tests/CodeBeam.UltimateAuth.Tests.Integration.EfCore/Infrastructure/FailingUserIdentifierStore.cs b/tests/CodeBeam.UltimateAuth.Tests.Integration.EfCore/Infrastructure/FailingUserIdentifierStore.cs index dfd5b153..c243f63e 100644 --- a/tests/CodeBeam.UltimateAuth.Tests.Integration.EfCore/Infrastructure/FailingUserIdentifierStore.cs +++ b/tests/CodeBeam.UltimateAuth.Tests.Integration.EfCore/Infrastructure/FailingUserIdentifierStore.cs @@ -58,7 +58,7 @@ public Task DeleteAsync( now, ct); - public Task ExistsAsync( + public Task ExistsAsync( IdentifierExistenceQuery query, CancellationToken ct = default) => _inner.ExistsAsync(query, ct); diff --git a/tests/CodeBeam.UltimateAuth.Tests.Integration/AuthorizationManagementTests.cs b/tests/CodeBeam.UltimateAuth.Tests.Integration/AuthorizationManagementTests.cs index 4b9bfbe3..4e8d0096 100644 --- a/tests/CodeBeam.UltimateAuth.Tests.Integration/AuthorizationManagementTests.cs +++ b/tests/CodeBeam.UltimateAuth.Tests.Integration/AuthorizationManagementTests.cs @@ -429,7 +429,7 @@ await GrantAsync(factory, admin, response.StatusCode.Should().Be(HttpStatusCode.OK); var result = await response.Content - .ReadFromJsonAsync(); + .ReadFromJsonAsync(); result.Should().NotBeNull(); result!.UserKey.Should().Be(target.UserKey); @@ -456,7 +456,7 @@ public async Task GetMyRoles_ShouldReturnOwnRole() response.StatusCode.Should().Be(HttpStatusCode.OK); var result = await response.Content - .ReadFromJsonAsync(); + .ReadFromJsonAsync(); result.Should().NotBeNull(); result!.UserKey.Should().Be(user.UserKey); diff --git a/tests/CodeBeam.UltimateAuth.Tests.Integration/CredentialManagementTests.cs b/tests/CodeBeam.UltimateAuth.Tests.Integration/CredentialManagementTests.cs index b71421cd..ab9450e4 100644 --- a/tests/CodeBeam.UltimateAuth.Tests.Integration/CredentialManagementTests.cs +++ b/tests/CodeBeam.UltimateAuth.Tests.Integration/CredentialManagementTests.cs @@ -167,7 +167,7 @@ await factory.GrantPermissionsAsync( response.StatusCode.Should().Be(HttpStatusCode.OK); var result = await response.Content - .ReadFromJsonAsync(); + .ReadFromJsonAsync(); result.Should().NotBeNull(); result!.ExpiresAt.Should().BeAfter(factory.Clock.UtcNow); @@ -258,7 +258,7 @@ await factory.GrantPermissionsAsync( begin.StatusCode.Should().Be(HttpStatusCode.OK); var beginResult = await begin.Content - .ReadFromJsonAsync(); + .ReadFromJsonAsync(); beginResult.Should().NotBeNull(); diff --git a/tests/CodeBeam.UltimateAuth.Tests.Integration/Infrastructure/FailingUserIdentifierStore.cs b/tests/CodeBeam.UltimateAuth.Tests.Integration/Infrastructure/FailingUserIdentifierStore.cs index 82671d49..1d2376a1 100644 --- a/tests/CodeBeam.UltimateAuth.Tests.Integration/Infrastructure/FailingUserIdentifierStore.cs +++ b/tests/CodeBeam.UltimateAuth.Tests.Integration/Infrastructure/FailingUserIdentifierStore.cs @@ -59,7 +59,7 @@ public Task DeleteAsync( now, ct); - public Task ExistsAsync( + public Task ExistsAsync( IdentifierExistenceQuery query, CancellationToken ct = default) => _inner.ExistsAsync(query, ct); diff --git a/tests/CodeBeam.UltimateAuth.Tests.Integration/LogoutAdminTests.cs b/tests/CodeBeam.UltimateAuth.Tests.Integration/LogoutAdminTests.cs index bd77b124..61deb287 100644 --- a/tests/CodeBeam.UltimateAuth.Tests.Integration/LogoutAdminTests.cs +++ b/tests/CodeBeam.UltimateAuth.Tests.Integration/LogoutAdminTests.cs @@ -590,7 +590,7 @@ await _factory.GrantPermissionsAsync( $"/auth/admin/users/{target.UserKey.Value}/logout-others", new LogoutOtherDevicesRequest { - CurrentChainId = currentChain.ChainId + ExceptChainId = currentChain.ChainId }); response.StatusCode.Should().Be(HttpStatusCode.OK); @@ -658,7 +658,7 @@ await LoginAsync( $"/auth/admin/users/{target.UserKey.Value}/logout-others", new LogoutOtherDevicesRequest { - CurrentChainId = currentChain.ChainId + ExceptChainId = currentChain.ChainId }); response.StatusCode.Should() @@ -758,7 +758,7 @@ await LoginAsync( $"/auth/admin/users/{target.UserKey.Value}/logout-others", new LogoutOtherDevicesRequest { - CurrentChainId = foreignChain.ChainId + ExceptChainId = foreignChain.ChainId }); response.StatusCode.Should().BeOneOf( @@ -843,7 +843,7 @@ await LoginAsync( $"/auth/admin/users/{target.UserKey.Value}/logout-others", new LogoutOtherDevicesRequest { - CurrentChainId = currentChain.ChainId + ExceptChainId = currentChain.ChainId }); response.StatusCode.Should() @@ -931,7 +931,7 @@ await LoginAsync( var request = new LogoutOtherDevicesRequest { - CurrentChainId = preservedChain.ChainId + ExceptChainId = preservedChain.ChainId }; var url = diff --git a/tests/CodeBeam.UltimateAuth.Tests.Integration/SdkEnpointContractTests.cs b/tests/CodeBeam.UltimateAuth.Tests.Integration/SdkEnpointContractTests.cs index 1e353d3d..92a5d23b 100644 --- a/tests/CodeBeam.UltimateAuth.Tests.Integration/SdkEnpointContractTests.cs +++ b/tests/CodeBeam.UltimateAuth.Tests.Integration/SdkEnpointContractTests.cs @@ -102,7 +102,7 @@ public async Task AdminBeginReset_ShouldReturnTypedJson_WithoutProof() await AuthenticateAsync(client, admin); using var response = await client.PostAsJsonAsync( $"/auth/admin/users/{target.UserKey.Value}/credentials/reset/begin", BeginResetRequest(target)); - var result = await AssertTypedSuccessAsync(response); + var result = await AssertTypedSuccessAsync(response); result.ExpiresAt.Should().BeAfter(factory.Clock.UtcNow); var body = await response.Content.ReadAsStringAsync(); var notification = notifier.Notifications.Should().ContainSingle(x => x.UserKey == target.UserKey).Subject; @@ -122,7 +122,7 @@ await factory.GrantPermissionsAsync(admin.UserKey, await AuthenticateAsync(client, admin); var url = $"/auth/admin/users/{target.UserKey.Value}/credentials/reset"; using var begin = await client.PostAsJsonAsync($"{url}/begin", BeginResetRequest(target)); - await AssertTypedSuccessAsync(begin); + await AssertTypedSuccessAsync(begin); var token = notifier.Notifications.Single(x => x.UserKey == target.UserKey).Token; var newSecret = $"Changed-{Guid.NewGuid():N}!"; using var complete = await client.PostAsJsonAsync($"{url}/complete", diff --git a/tests/CodeBeam.UltimateAuth.Tests.Integration/UserIdentifierTests.cs b/tests/CodeBeam.UltimateAuth.Tests.Integration/UserIdentifierTests.cs index b8896209..287c15a9 100644 --- a/tests/CodeBeam.UltimateAuth.Tests.Integration/UserIdentifierTests.cs +++ b/tests/CodeBeam.UltimateAuth.Tests.Integration/UserIdentifierTests.cs @@ -1,6 +1,7 @@ using CodeBeam.UltimateAuth.Core.MultiTenancy; using CodeBeam.UltimateAuth.Server.Infrastructure; using CodeBeam.UltimateAuth.Tests.Integration.Infrastructure; +using CodeBeam.UltimateAuth.Users; using CodeBeam.UltimateAuth.Users.Contracts; using CodeBeam.UltimateAuth.Users.Reference; using FluentAssertions; diff --git a/tests/CodeBeam.UltimateAuth.Tests.Unit/Authorization/AuthorizationEndpointHandlerTests.cs b/tests/CodeBeam.UltimateAuth.Tests.Unit/Authorization/AuthorizationEndpointHandlerTests.cs index 8c5e5782..28bd0552 100644 --- a/tests/CodeBeam.UltimateAuth.Tests.Unit/Authorization/AuthorizationEndpointHandlerTests.cs +++ b/tests/CodeBeam.UltimateAuth.Tests.Unit/Authorization/AuthorizationEndpointHandlerTests.cs @@ -534,7 +534,7 @@ public async Task DeleteRoleAsync_WhenAuthenticated_ForwardsDeleteMode() roleId.ToString(), accessContext); - var expected = new DeleteRoleResult + var expected = new RoleDeleteResult { RoleId = roleId, Mode = DeleteMode.Hard, diff --git a/tests/CodeBeam.UltimateAuth.Tests.Unit/Authorization/RoleServiceTests.cs b/tests/CodeBeam.UltimateAuth.Tests.Unit/Authorization/RoleServiceTests.cs index 6c01265b..dadb2d58 100644 --- a/tests/CodeBeam.UltimateAuth.Tests.Unit/Authorization/RoleServiceTests.cs +++ b/tests/CodeBeam.UltimateAuth.Tests.Unit/Authorization/RoleServiceTests.cs @@ -466,9 +466,9 @@ public Fixture() AccessOrchestrator .Setup(x => x.ExecuteAsync( It.IsAny(), - It.IsAny>(), + It.IsAny>(), It.IsAny())) - .Returns, CancellationToken>( + .Returns, CancellationToken>( async (_, command, ct) => await command.ExecuteAsync(ct)); diff --git a/tests/CodeBeam.UltimateAuth.Tests.Unit/Client/UAuthClientAuthorizationTests.cs b/tests/CodeBeam.UltimateAuth.Tests.Unit/Client/UAuthClientAuthorizationTests.cs index 00113329..fa697b12 100644 --- a/tests/CodeBeam.UltimateAuth.Tests.Unit/Client/UAuthClientAuthorizationTests.cs +++ b/tests/CodeBeam.UltimateAuth.Tests.Unit/Client/UAuthClientAuthorizationTests.cs @@ -117,7 +117,7 @@ public async Task GetMyRoles_Should_Call_Correct_Endpoint_And_Return_Data() { var userKey = UserKey.FromString("user-1"); - var response = new UserRolesResponse + var response = new UserRolesGetResult { UserKey = userKey, Roles = new PagedResult( @@ -158,7 +158,7 @@ public async Task GetUserRoles_Should_Call_Admin_Endpoint() { var userKey = UserKey.FromString("user-1"); - var response = new UserRolesResponse + var response = new UserRolesGetResult { UserKey = userKey, Roles = new PagedResult( @@ -262,7 +262,7 @@ public async Task SetRolePermissions_Should_Publish_Event_On_Success() public async Task DeleteRole_Should_Publish_Event_On_Success() { Request.Setup(x => x.SendJsonAsync(It.IsAny(), It.IsAny())) - .ReturnsAsync(SuccessJson(new DeleteRoleResult())); + .ReturnsAsync(SuccessJson(new RoleDeleteResult())); var client = CreateClient(); diff --git a/tests/CodeBeam.UltimateAuth.Tests.Unit/Client/UAuthClientCredentialsTests.cs b/tests/CodeBeam.UltimateAuth.Tests.Unit/Client/UAuthClientCredentialsTests.cs index 51a26819..e4997a11 100644 --- a/tests/CodeBeam.UltimateAuth.Tests.Unit/Client/UAuthClientCredentialsTests.cs +++ b/tests/CodeBeam.UltimateAuth.Tests.Unit/Client/UAuthClientCredentialsTests.cs @@ -15,7 +15,7 @@ public class UAuthClientCredentialTests : UAuthClientTestBase public async Task AddMy_Should_Call_Correct_Endpoint() { Request.Setup(x => x.SendJsonAsync(It.IsAny(), It.IsAny())) - .ReturnsAsync(SuccessJson(new AddCredentialResult())); + .ReturnsAsync(SuccessJson(new CredentialAddResult())); var client = CreateCredentialClient(); await client.Credentials.AddMyAsync(new AddCredentialRequest() { Secret = "uauth" }); @@ -26,7 +26,7 @@ public async Task AddMy_Should_Call_Correct_Endpoint() public async Task ChangeMy_Should_Publish_Event_On_Success() { Request.Setup(x => x.SendJsonAsync(It.IsAny(), It.IsAny())) - .ReturnsAsync(SuccessJson(new ChangeCredentialResult())); + .ReturnsAsync(SuccessJson(new CredentialChangeResult())); var client = CreateCredentialClient(); await client.Credentials.ChangeMyAsync(new ChangeCredentialRequest() { NewSecret = "uauth" }); @@ -59,7 +59,7 @@ public async Task RevokeMy_Should_Publish_Event() public async Task AddUser_Should_Call_Admin_Endpoint() { Request.Setup(x => x.SendJsonAsync(It.IsAny(), It.IsAny())) - .ReturnsAsync(SuccessJson(new AddCredentialResult())); + .ReturnsAsync(SuccessJson(new CredentialAddResult())); var client = CreateCredentialClient(); var userKey = UserKey.FromString("user-1"); @@ -111,10 +111,10 @@ public async Task DeleteUser_Should_Call_Delete_Endpoint() public async Task BeginResetMy_Should_Call_Correct_Endpoint() { Request.Setup(x => x.SendJsonAsync(It.IsAny(), It.IsAny())) - .ReturnsAsync(SuccessJson(new BeginCredentialResetResult())); + .ReturnsAsync(SuccessJson(new CredentialBeginResetResult())); var client = CreateCredentialClient(); - await client.Credentials.BeginResetMyAsync(new BeginResetCredentialRequest() { Identifier = "user1" }); + await client.Credentials.BeginResetAsync(new BeginResetCredentialRequest() { Identifier = "user1" }); Request.Verify(x => x.SendJsonAsync("/auth/me/credentials/reset/begin", It.IsAny()), Times.Once); } @@ -125,7 +125,7 @@ public async Task CompleteResetMy_Should_Publish_Event_On_Success() .ReturnsAsync(SuccessJson(new CredentialActionResult())); var client = CreateCredentialClient(); - await client.Credentials.CompleteResetMyAsync(new CompleteResetCredentialRequest() { NewSecret = "uauth", Identifier = "user1", ResetToken = "fake_token" }); + await client.Credentials.CompleteResetAsync(new CompleteResetCredentialRequest() { NewSecret = "uauth", Identifier = "user1", ResetToken = "fake_token" }); Events.Verify(x => x.PublishAsync(It.Is(e => e.Type == UAuthStateEvent.CredentialsChanged)), Times.Once); } @@ -136,7 +136,7 @@ public async Task CompleteResetMy_Should_NOT_Publish_Event_On_Failure() .ReturnsAsync(new UAuthTransportResult { Ok = false, Status = 400 }); var client = CreateCredentialClient(); - await client.Credentials.CompleteResetMyAsync(new CompleteResetCredentialRequest() { NewSecret = "uauth", Identifier = "user1", ResetToken = "fake_token" }); + await client.Credentials.CompleteResetAsync(new CompleteResetCredentialRequest() { NewSecret = "uauth", Identifier = "user1", ResetToken = "fake_token" }); Events.Verify(x => x.PublishAsync(It.IsAny()), Times.Never); } @@ -144,7 +144,7 @@ public async Task CompleteResetMy_Should_NOT_Publish_Event_On_Failure() public async Task BeginResetUser_Should_Call_Admin_Endpoint() { Request.Setup(x => x.SendJsonAsync(It.IsAny(), It.IsAny())) - .ReturnsAsync(SuccessJson(new BeginCredentialResetResult())); + .ReturnsAsync(SuccessJson(new CredentialBeginResetResult())); var client = CreateCredentialClient(); var userKey = UserKey.FromString("user-1"); @@ -170,7 +170,7 @@ public async Task CompleteResetUser_Should_NOT_Publish_Event() public async Task ChangeUser_Should_Call_Admin_Endpoint() { Request.Setup(x => x.SendJsonAsync(It.IsAny(), It.IsAny())) - .ReturnsAsync(SuccessJson(new ChangeCredentialResult())); + .ReturnsAsync(SuccessJson(new CredentialChangeResult())); var client = CreateCredentialClient(); var userKey = UserKey.FromString("user-1"); diff --git a/tests/CodeBeam.UltimateAuth.Tests.Unit/Client/UAuthClientEventConsistencyTests.cs b/tests/CodeBeam.UltimateAuth.Tests.Unit/Client/UAuthClientEventConsistencyTests.cs index f15fb9d1..6acbe060 100644 --- a/tests/CodeBeam.UltimateAuth.Tests.Unit/Client/UAuthClientEventConsistencyTests.cs +++ b/tests/CodeBeam.UltimateAuth.Tests.Unit/Client/UAuthClientEventConsistencyTests.cs @@ -115,7 +115,7 @@ public async Task Credential_Should_Not_Publish_When_Response_Is_Invalid(string { "Change" => () => client.ChangeMyAsync(null!), "Revoke" => () => client.RevokeMyAsync(null!), - "CompleteReset" => () => client.CompleteResetMyAsync(null!), + "CompleteReset" => () => client.CompleteResetAsync(null!), _ => throw new ArgumentOutOfRangeException(nameof(operation)) }; @@ -137,7 +137,7 @@ public async Task Typed_Credential_Response_Should_Not_Publish_When_Body_Missing Func act = operation switch { "Change" => () => client.ChangeMyAsync(null!), - "CompleteReset" => () => client.CompleteResetMyAsync(null!), + "CompleteReset" => () => client.CompleteResetAsync(null!), _ => throw new ArgumentOutOfRangeException(nameof(operation)) }; diff --git a/tests/CodeBeam.UltimateAuth.Tests.Unit/Client/UAuthFlowClientTests.cs b/tests/CodeBeam.UltimateAuth.Tests.Unit/Client/UAuthFlowClientTests.cs index 830b225b..6ac2c9b0 100644 --- a/tests/CodeBeam.UltimateAuth.Tests.Unit/Client/UAuthFlowClientTests.cs +++ b/tests/CodeBeam.UltimateAuth.Tests.Unit/Client/UAuthFlowClientTests.cs @@ -777,7 +777,7 @@ public async Task LogoutUserOtherDevices_Should_Call_Admin_Endpoint() var client = CreateFlowClient(mock); var userKey = UserKey.FromString("user-1"); - await client.LogoutUserOtherDevicesAsync(userKey, new LogoutOtherDevicesRequest() { CurrentChainId = SessionChainId.New() }); + await client.LogoutUserOtherDevicesAsync(userKey, new LogoutOtherDevicesRequest() { ExceptChainId = SessionChainId.New() }); mock.Verify(x => x.SendJsonAsync($"/auth/admin/users/{userKey.Value}/logout-others", It.IsAny()), Times.Once); } diff --git a/tests/CodeBeam.UltimateAuth.Tests.Unit/Credentials/CredentialEndpointHandlerTests.cs b/tests/CodeBeam.UltimateAuth.Tests.Unit/Credentials/CredentialEndpointHandlerTests.cs index 47d17807..221e2435 100644 --- a/tests/CodeBeam.UltimateAuth.Tests.Unit/Credentials/CredentialEndpointHandlerTests.cs +++ b/tests/CodeBeam.UltimateAuth.Tests.Unit/Credentials/CredentialEndpointHandlerTests.cs @@ -45,7 +45,7 @@ public async Task GetAllAsync_WhenAuthenticated_UsesListSelfAndReturnsOk() f.UserKey.Value, access); - var serviceResult = new GetCredentialsResult(); + var serviceResult = new CredentialsGetResult(); f.Credentials .Setup(x => x.GetAllAsync( @@ -56,7 +56,7 @@ public async Task GetAllAsync_WhenAuthenticated_UsesListSelfAndReturnsOk() var result = await f.Sut.GetAllAsync(f.HttpContext); var ok = result.Should() - .BeOfType>() + .BeOfType>() .Subject; ok.Value.Should().BeSameAs(serviceResult); @@ -100,7 +100,7 @@ public async Task AddAsync_WhenAuthenticated_ForwardsRequestUsingAddSelf() f.UserKey.Value, access); - var serviceResult = AddCredentialResult.Success( + var serviceResult = CredentialAddResult.Success( Guid.NewGuid(), CredentialType.Password); @@ -115,7 +115,7 @@ public async Task AddAsync_WhenAuthenticated_ForwardsRequestUsingAddSelf() var result = await f.Sut.AddAsync(f.HttpContext); var ok = result.Should() - .BeOfType>() + .BeOfType>() .Subject; ok.Value.Should().BeSameAs(serviceResult); @@ -162,7 +162,7 @@ public async Task ChangeSecretAsync_WhenAuthenticated_ForwardsRequestUsingChange access); var serviceResult = - ChangeCredentialResult.Success(CredentialType.Password); + CredentialChangeResult.Success(CredentialType.Password); f.Credentials .Setup(x => x.ChangeSecretAsync( @@ -176,7 +176,7 @@ public async Task ChangeSecretAsync_WhenAuthenticated_ForwardsRequestUsingChange var result = await f.Sut.ChangeSecretAsync(f.HttpContext); var ok = result.Should() - .BeOfType>() + .BeOfType>() .Subject; ok.Value.Should().BeSameAs(serviceResult); @@ -242,7 +242,7 @@ public async Task BeginResetAsync_WhenUnauthenticated_IsAllowed() identifier, access); - var serviceResult = new BeginCredentialResetResult(); + var serviceResult = new CredentialBeginResetResult(); f.Credentials .Setup(x => x.BeginResetAsync( @@ -257,7 +257,7 @@ public async Task BeginResetAsync_WhenUnauthenticated_IsAllowed() var result = await f.Sut.BeginResetAsync(f.HttpContext); var ok = result.Should() - .BeOfType>() + .BeOfType>() .Subject; ok.Value.Should().BeSameAs(serviceResult); @@ -343,7 +343,7 @@ public async Task GetAllAdminAsync_WhenAuthenticated_UsesListAdminForTargetUser( target.Value, access); - var serviceResult = new GetCredentialsResult(); + var serviceResult = new CredentialsGetResult(); f.Credentials .Setup(x => x.GetAllAsync( @@ -356,7 +356,7 @@ public async Task GetAllAdminAsync_WhenAuthenticated_UsesListAdminForTargetUser( f.HttpContext); var ok = result.Should() - .BeOfType>() + .BeOfType>() .Subject; ok.Value.Should().BeSameAs(serviceResult); @@ -386,7 +386,7 @@ public async Task AddAdminAsync_WhenAuthenticated_UsesAddAdminForTargetUser() target.Value, access); - var serviceResult = AddCredentialResult.Success( + var serviceResult = CredentialAddResult.Success( Guid.NewGuid(), CredentialType.Password); @@ -402,7 +402,7 @@ public async Task AddAdminAsync_WhenAuthenticated_UsesAddAdminForTargetUser() target, f.HttpContext); - result.Should().BeOfType>(); + result.Should().BeOfType>(); } // ========================================================= @@ -445,7 +445,7 @@ public async Task ChangeSecretAdminAsync_WhenAuthenticated_UsesChangeAdminForTar access); var serviceResult = - ChangeCredentialResult.Success(CredentialType.Password); + CredentialChangeResult.Success(CredentialType.Password); f.Credentials .Setup(x => x.ChangeSecretAsync( @@ -459,7 +459,7 @@ public async Task ChangeSecretAdminAsync_WhenAuthenticated_UsesChangeAdminForTar target, f.HttpContext); - result.Should().BeOfType>(); + result.Should().BeOfType>(); } // ========================================================= @@ -574,7 +574,7 @@ public async Task BeginResetAdminAsync_WhenAuthenticated_UsesTargetUserAsResourc target.Value, access); - var expected = new BeginCredentialResetResult(); + var expected = new CredentialBeginResetResult(); f.Credentials .Setup(x => x.BeginResetAsync( @@ -588,7 +588,7 @@ public async Task BeginResetAdminAsync_WhenAuthenticated_UsesTargetUserAsResourc f.HttpContext); var ok = result.Should() - .BeOfType>() + .BeOfType>() .Subject; ok.Value.Should().BeSameAs(expected); diff --git a/tests/CodeBeam.UltimateAuth.Tests.Unit/Credentials/CredentialManagementServiceTests.cs b/tests/CodeBeam.UltimateAuth.Tests.Unit/Credentials/CredentialManagementServiceTests.cs index 891e3981..356222f5 100644 --- a/tests/CodeBeam.UltimateAuth.Tests.Unit/Credentials/CredentialManagementServiceTests.cs +++ b/tests/CodeBeam.UltimateAuth.Tests.Unit/Credentials/CredentialManagementServiceTests.cs @@ -1002,30 +1002,30 @@ public Fixture() AccessOrchestrator .Setup(x => x.ExecuteAsync( It.IsAny(), - It.IsAny>(), + It.IsAny>(), It.IsAny())) .Returns, + AccessCommand, CancellationToken>( (_, command, ct) => command.ExecuteAsync(ct)); AccessOrchestrator .Setup(x => x.ExecuteAsync( It.IsAny(), - It.IsAny>(), + It.IsAny>(), It.IsAny())) .Returns, + AccessCommand, CancellationToken>( (_, command, ct) => command.ExecuteAsync(ct)); AccessOrchestrator .Setup(x => x.ExecuteAsync( It.IsAny(), - It.IsAny>(), + It.IsAny>(), It.IsAny())) .Returns, + AccessCommand, CancellationToken>( (_, command, ct) => command.ExecuteAsync(ct)); @@ -1043,10 +1043,10 @@ public Fixture() AccessOrchestrator .Setup(x => x.ExecuteAsync( It.IsAny(), - It.IsAny>(), + It.IsAny>(), It.IsAny())) .Returns, + AccessCommand, CancellationToken>( (_, command, ct) => command.ExecuteAsync(ct)); diff --git a/tests/CodeBeam.UltimateAuth.Tests.Unit/Server/LogoutEndpointHandlerTests.cs b/tests/CodeBeam.UltimateAuth.Tests.Unit/Server/LogoutEndpointHandlerTests.cs index cf6aad14..b93f2618 100644 --- a/tests/CodeBeam.UltimateAuth.Tests.Unit/Server/LogoutEndpointHandlerTests.cs +++ b/tests/CodeBeam.UltimateAuth.Tests.Unit/Server/LogoutEndpointHandlerTests.cs @@ -430,7 +430,7 @@ public async Task LogoutOthersAdminAsync_UsesRequestedCurrentChain() fixture.HttpContext, new LogoutOtherDevicesRequest { - CurrentChainId = currentChainId + ExceptChainId = currentChainId }); var access = TestAccessContext.ForUser( diff --git a/tests/CodeBeam.UltimateAuth.Tests.Unit/Users/Store/UserLifecycleStoreContractTests.cs b/tests/CodeBeam.UltimateAuth.Tests.Unit/Users/Store/UserLifecycleStoreContractTests.cs index dd4e823f..52fcbc33 100644 --- a/tests/CodeBeam.UltimateAuth.Tests.Unit/Users/Store/UserLifecycleStoreContractTests.cs +++ b/tests/CodeBeam.UltimateAuth.Tests.Unit/Users/Store/UserLifecycleStoreContractTests.cs @@ -2,6 +2,7 @@ using CodeBeam.UltimateAuth.Core.Domain; using CodeBeam.UltimateAuth.Core.Errors; using CodeBeam.UltimateAuth.Core.MultiTenancy; +using CodeBeam.UltimateAuth.Users.Contracts; using CodeBeam.UltimateAuth.Users.Reference; using FluentAssertions; diff --git a/tests/CodeBeam.UltimateAuth.Tests.Unit/Users/UserApplicationServiceTests.cs b/tests/CodeBeam.UltimateAuth.Tests.Unit/Users/UserApplicationServiceTests.cs index 5868c2d6..c8481e93 100644 --- a/tests/CodeBeam.UltimateAuth.Tests.Unit/Users/UserApplicationServiceTests.cs +++ b/tests/CodeBeam.UltimateAuth.Tests.Unit/Users/UserApplicationServiceTests.cs @@ -1151,7 +1151,7 @@ public async Task UpdateUserIdentifierAsync_ValidatesNewValue_NotExistingValue() q.UserKey == null && q.ExcludeIdentifierId == identifier.Id), It.IsAny())) - .ReturnsAsync(new IdentifierExistenceResult( + .ReturnsAsync(new UserIdentifierExistenceResult( Exists: false)); f.IdentifierValidator @@ -1188,7 +1188,7 @@ public async Task UpdateUserIdentifierAsync_ValidatesNewValue_NotExistingValue() q.UserKey == identifier.UserKey && q.ExcludeIdentifierId == identifier.Id), It.IsAny())) - .ReturnsAsync(new IdentifierExistenceResult( + .ReturnsAsync(new UserIdentifierExistenceResult( Exists: false)); f.IdentifierStore @@ -1690,7 +1690,7 @@ public async Task UserIdentifierExistsAsync_TenantScope_DoesNotPassUserKey( q.Scope == scope && q.UserKey == null), It.IsAny())) - .ReturnsAsync(new IdentifierExistenceResult(Exists: true)); + .ReturnsAsync(new UserIdentifierExistenceResult(Exists: true)); var result = await f.Sut.UserIdentifierExistsAsync( context, @@ -1726,7 +1726,7 @@ public async Task UserIdentifierExistsAsync_WithinUser_PassesTargetUserKey() q.Scope == IdentifierExistenceScope.WithinUser && q.UserKey == target), It.IsAny())) - .ReturnsAsync(new IdentifierExistenceResult(Exists: true)); + .ReturnsAsync(new UserIdentifierExistenceResult(Exists: true)); var result = await f.Sut.UserIdentifierExistsAsync( context, @@ -1757,7 +1757,7 @@ public async Task UserIdentifierExistsAsync_WhenStoreReportsMissing_ReturnsFalse q.Scope == IdentifierExistenceScope.TenantPrimaryOnly && q.UserKey == null), It.IsAny())) - .ReturnsAsync(new IdentifierExistenceResult(Exists: false)); + .ReturnsAsync(new UserIdentifierExistenceResult(Exists: false)); var result = await f.Sut.UserIdentifierExistsAsync( context, UserIdentifierType.Username, "missing"); diff --git a/tests/CodeBeam.UltimateAuth.Tests.Unit/Users/UserEndpointHandlerTests.cs b/tests/CodeBeam.UltimateAuth.Tests.Unit/Users/UserEndpointHandlerTests.cs index 69e65095..31577bbc 100644 --- a/tests/CodeBeam.UltimateAuth.Tests.Unit/Users/UserEndpointHandlerTests.cs +++ b/tests/CodeBeam.UltimateAuth.Tests.Unit/Users/UserEndpointHandlerTests.cs @@ -759,7 +759,7 @@ public async Task IdentifierExistsSelfAsync_UsesWithinUserScope() await f.Sut.IdentifierExistsSelfAsync(f.HttpContext); var ok = result.Should() - .BeOfType>() + .BeOfType>() .Subject; ok.Value!.Exists.Should().BeTrue(); @@ -805,7 +805,7 @@ public async Task IdentifierExistsAdminAsync_UsesTenantAnyScope() f.HttpContext); var ok = result.Should() - .BeOfType>() + .BeOfType>() .Subject; ok.Value!.Exists.Should().BeTrue();