Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ private async Task ChangePasswordAsync()
};
}

UAuthResult<ChangeCredentialResult> result;
UAuthResult<CredentialChangeResult> result;
if (UserKey is null)
{
result = await UAuthClient.Credentials.ChangeMyAsync(request);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ private async Task ChangePasswordAsync()
};
}

UAuthResult<ChangeCredentialResult> result;
UAuthResult<CredentialChangeResult> result;
if (UserKey is null)
{
result = await UAuthClient.Credentials.ChangeMyAsync(request);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ private async Task ChangePasswordAsync()
};
}

UAuthResult<ChangeCredentialResult> result;
UAuthResult<CredentialChangeResult> result;
if (UserKey is null)
{
result = await UAuthClient.Credentials.ChangeMyAsync(request);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ private async Task ChangePasswordAsync()
};
}

UAuthResult<ChangeCredentialResult> result;
UAuthResult<CredentialChangeResult> result;
if (UserKey is null)
{
result = await UAuthClient.Credentials.ChangeMyAsync(request);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down Expand Up @@ -132,7 +131,7 @@ public async Task<IResult> 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();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace CodeBeam.UltimateAuth.Authorization.Contracts;

public sealed class DeleteRoleResult
public sealed class RoleDeleteResult
{
public RoleId RoleId { get; init; }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<UserRoleInfo> Roles { get; init; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ public async Task<IResult> 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
Expand All @@ -104,7 +104,7 @@ public async Task<IResult> 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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,11 +63,11 @@ public async Task RenameAsync(AccessContext context, RoleId roleId, string newNa
await _accessOrchestrator.ExecuteAsync(context, cmd, ct);
}

public async Task<DeleteRoleResult> DeleteAsync(AccessContext context, RoleId roleId, DeleteMode mode, CancellationToken ct = default)
public async Task<RoleDeleteResult> DeleteAsync(AccessContext context, RoleId roleId, DeleteMode mode, CancellationToken ct = default)
{
ct.ThrowIfCancellationRequested();

var cmd = new AccessCommand<DeleteRoleResult>(async innerCt =>
var cmd = new AccessCommand<RoleDeleteResult>(async innerCt =>
{
var key = new RoleKey(context.ResourceTenant, roleId);
var roleStore = _roleFactory.Create(context.ResourceTenant);
Expand All @@ -81,7 +81,7 @@ public async Task<DeleteRoleResult> 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,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ public interface IRoleService

Task RenameAsync(AccessContext context, RoleId roleId, string newName, CancellationToken ct = default);

Task<DeleteRoleResult> DeleteAsync(AccessContext context, RoleId roleId, DeleteMode mode, CancellationToken ct = default);
Task<RoleDeleteResult> DeleteAsync(AccessContext context, RoleId roleId, DeleteMode mode, CancellationToken ct = default);

Task SetPermissionsAsync(AccessContext context, RoleId roleId, IEnumerable<Permission> permissions, CancellationToken ct = default);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,15 +49,15 @@ public interface IAuthorizationClient
/// <remarks>
/// Results may be paginated. Use <paramref name="request"/> to control paging behavior.
/// </remarks>
Task<UAuthResult<UserRolesResponse>> GetMyRolesAsync(PageRequest? request = null);
Task<UAuthResult<UserRolesGetResult>> GetMyRolesAsync(PageRequest? request = null);

/// <summary>
/// Retrieves roles assigned to a specific user.
/// </summary>
/// <remarks>
/// Requires appropriate administrative permissions.
/// </remarks>
Task<UAuthResult<UserRolesResponse>> GetUserRolesAsync(UserKey userKey, PageRequest? request = null);
Task<UAuthResult<UserRolesGetResult>> GetUserRolesAsync(UserKey userKey, PageRequest? request = null);

/// <summary>
/// Assigns a role to a user.
Expand Down Expand Up @@ -108,5 +108,5 @@ public interface IAuthorizationClient
/// <remarks>
/// Deleting a role removes it from all users.
/// </remarks>
Task<UAuthResult<DeleteRoleResult>> DeleteRoleAsync(DeleteRoleRequest request);
Task<UAuthResult<RoleDeleteResult>> DeleteRoleAsync(DeleteRoleRequest request);
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,15 +39,15 @@ public interface ICredentialClient
/// <remarks>
/// Typically used for initial password setup or adding alternative credentials.
/// </remarks>
Task<UAuthResult<AddCredentialResult>> AddMyAsync(AddCredentialRequest request);
Task<UAuthResult<CredentialAddResult>> AddMyAsync(AddCredentialRequest request);

/// <summary>
/// Changes the credential of the current user.
/// </summary>
/// <remarks>
/// May require the current credential for verification depending on policy.
/// </remarks>
Task<UAuthResult<ChangeCredentialResult>> ChangeMyAsync(ChangeCredentialRequest request);
Task<UAuthResult<CredentialChangeResult>> ChangeMyAsync(ChangeCredentialRequest request);

/// <summary>
/// Revokes the current user's credential.
Expand All @@ -63,15 +63,15 @@ public interface ICredentialClient
/// <remarks>
/// This typically issues a verification step (e.g., email or OTP).
/// </remarks>
Task<UAuthResult<BeginCredentialResetResult>> BeginResetMyAsync(BeginResetCredentialRequest request);
Task<UAuthResult<CredentialBeginResetResult>> BeginResetAsync(BeginResetCredentialRequest request);

/// <summary>
/// Completes the credential reset process for the current user.
/// </summary>
/// <remarks>
/// Must be called after a successful <see cref="BeginResetMyAsync"/>.
/// Must be called after a successful <see cref="BeginResetAsync"/>.
/// </remarks>
Task<UAuthResult<CredentialActionResult>> CompleteResetMyAsync(CompleteResetCredentialRequest request);
Task<UAuthResult<CredentialActionResult>> CompleteResetAsync(CompleteResetCredentialRequest request);


/// <summary>
Expand All @@ -80,15 +80,15 @@ public interface ICredentialClient
/// <remarks>
/// Requires administrative privileges.
/// </remarks>
Task<UAuthResult<AddCredentialResult>> AddUserAsync(UserKey userKey, AddCredentialRequest request);
Task<UAuthResult<CredentialAddResult>> AddUserAsync(UserKey userKey, AddCredentialRequest request);

/// <summary>
/// Changes the credential of a specific user.
/// </summary>
/// <remarks>
/// Typically used for administrative resets or overrides.
/// </remarks>
Task<UAuthResult<ChangeCredentialResult>> ChangeUserAsync(UserKey userKey, ChangeCredentialRequest request);
Task<UAuthResult<CredentialChangeResult>> ChangeUserAsync(UserKey userKey, ChangeCredentialRequest request);

/// <summary>
/// Revokes a credential for a specific user.
Expand All @@ -98,7 +98,7 @@ public interface ICredentialClient
/// <summary>
/// Starts the credential reset process for a specific user.
/// </summary>
Task<UAuthResult<BeginCredentialResetResult>> BeginResetUserAsync(UserKey userKey, BeginResetCredentialRequest request);
Task<UAuthResult<CredentialBeginResetResult>> BeginResetUserAsync(UserKey userKey, BeginResetCredentialRequest request);

/// <summary>
/// Completes the credential reset process for a specific user.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,18 +29,18 @@ public async Task<UAuthResult<AuthorizationResult>> CheckAsync(AuthorizationChec
return UAuthResultMapper.FromJson<AuthorizationResult>(raw);
}

public async Task<UAuthResult<UserRolesResponse>> GetMyRolesAsync(PageRequest? request = null)
public async Task<UAuthResult<UserRolesGetResult>> GetMyRolesAsync(PageRequest? request = null)
{
request ??= new PageRequest();
var raw = await _request.SendJsonAsync(Url("/me/authorization/roles/get"), request);
return UAuthResultMapper.FromJson<UserRolesResponse>(raw);
return UAuthResultMapper.FromJson<UserRolesGetResult>(raw);
}

public async Task<UAuthResult<UserRolesResponse>> GetUserRolesAsync(UserKey userKey, PageRequest? request = null)
public async Task<UAuthResult<UserRolesGetResult>> 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<UserRolesResponse>(raw);
return UAuthResultMapper.FromJson<UserRolesGetResult>(raw);
}

public async Task<UAuthResult> AssignRoleToUserAsync(AssignRoleRequest request)
Expand Down Expand Up @@ -109,10 +109,10 @@ public async Task<UAuthResult> SetRolePermissionsAsync(SetRolePermissionsRequest
return result;
}

public async Task<UAuthResult<DeleteRoleResult>> DeleteRoleAsync(DeleteRoleRequest request)
public async Task<UAuthResult<RoleDeleteResult>> DeleteRoleAsync(DeleteRoleRequest request)
{
var raw = await _request.SendJsonAsync(Url($"/admin/authorization/roles/{request.Id.Value}/delete"), request);
var result = UAuthResultMapper.FromJson<DeleteRoleResult>(raw);
var result = UAuthResultMapper.FromJson<RoleDeleteResult>(raw);

if (result.IsSuccess)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<UAuthResult<AddCredentialResult>> AddMyAsync(AddCredentialRequest request)
public async Task<UAuthResult<CredentialAddResult>> AddMyAsync(AddCredentialRequest request)
{
var raw = await _request.SendJsonAsync(Url("/me/credentials/add"), request);
return UAuthResultMapper.FromJson<AddCredentialResult>(raw);
return UAuthResultMapper.FromJson<CredentialAddResult>(raw);
}

public async Task<UAuthResult<ChangeCredentialResult>> ChangeMyAsync(ChangeCredentialRequest request)
public async Task<UAuthResult<CredentialChangeResult>> ChangeMyAsync(ChangeCredentialRequest request)
{
var raw = await _request.SendJsonAsync(Url("/me/credentials/change"), request);
var result = UAuthResultMapper.FromJson<ChangeCredentialResult>(raw);
var result = UAuthResultMapper.FromJson<CredentialChangeResult>(raw);

if (result.IsSuccess)
{
Expand All @@ -57,13 +57,13 @@ await _events.PublishAsync(
return result;
}

public async Task<UAuthResult<BeginCredentialResetResult>> BeginResetMyAsync(BeginResetCredentialRequest request)
public async Task<UAuthResult<CredentialBeginResetResult>> BeginResetAsync(BeginResetCredentialRequest request)
{
var raw = await _request.SendJsonAsync(Url($"/me/credentials/reset/begin"), request);
return UAuthResultMapper.FromJson<BeginCredentialResetResult>(raw);
return UAuthResultMapper.FromJson<CredentialBeginResetResult>(raw);
}

public async Task<UAuthResult<CredentialActionResult>> CompleteResetMyAsync(CompleteResetCredentialRequest request)
public async Task<UAuthResult<CredentialActionResult>> CompleteResetAsync(CompleteResetCredentialRequest request)
{
var raw = await _request.SendJsonAsync(Url("/me/credentials/reset/complete"), request);

Expand All @@ -78,16 +78,16 @@ await _events.PublishAsync(
return result;
}

public async Task<UAuthResult<AddCredentialResult>> AddUserAsync(UserKey userKey, AddCredentialRequest request)
public async Task<UAuthResult<CredentialAddResult>> AddUserAsync(UserKey userKey, AddCredentialRequest request)
{
var raw = await _request.SendJsonAsync(Url($"/admin/users/{userKey.Value}/credentials/add"), request);
return UAuthResultMapper.FromJson<AddCredentialResult>(raw);
return UAuthResultMapper.FromJson<CredentialAddResult>(raw);
}

public async Task<UAuthResult<ChangeCredentialResult>> ChangeUserAsync(UserKey userKey, ChangeCredentialRequest request)
public async Task<UAuthResult<CredentialChangeResult>> ChangeUserAsync(UserKey userKey, ChangeCredentialRequest request)
{
var raw = await _request.SendJsonAsync(Url($"/admin/users/{userKey.Value}/credentials/change"), request);
return UAuthResultMapper.FromJson<ChangeCredentialResult>(raw);
return UAuthResultMapper.FromJson<CredentialChangeResult>(raw);
}

public async Task<UAuthResult> RevokeUserAsync(UserKey userKey, RevokeCredentialRequest request)
Expand All @@ -96,10 +96,10 @@ public async Task<UAuthResult> RevokeUserAsync(UserKey userKey, RevokeCredential
return UAuthResultMapper.From(raw);
}

public async Task<UAuthResult<BeginCredentialResetResult>> BeginResetUserAsync(UserKey userKey, BeginResetCredentialRequest request)
public async Task<UAuthResult<CredentialBeginResetResult>> BeginResetUserAsync(UserKey userKey, BeginResetCredentialRequest request)
{
var raw = await _request.SendJsonAsync(Url($"/admin/users/{userKey.Value}/credentials/reset/begin"), request);
return UAuthResultMapper.FromJson<BeginCredentialResetResult>(raw);
return UAuthResultMapper.FromJson<CredentialBeginResetResult>(raw);
}

public async Task<UAuthResult<CredentialActionResult>> CompleteResetUserAsync(UserKey userKey, CompleteResetCredentialRequest request)
Expand Down
Loading
Loading