Implement activation checks across various commands and queries
- Introduced `IRequiresActivation` interface to enforce activation requirements for multiple commands and queries, ensuring that only activated users can create, edit, or access configurations, news, and applications. - Updated the `RequireActivationBehavior` to handle activation checks uniformly, returning appropriate errors for unauthenticated or inactive users. - Enhanced error handling by adding `NotActivated` error to provide clear feedback for users attempting to access restricted features. - Updated documentation to reflect the new activation requirements and their implications on user access and functionality.
This commit is contained in:
@@ -3,4 +3,4 @@ using PnvPanel.Application.Common.Models;
|
||||
|
||||
namespace PnvPanel.Application.Configs.Create;
|
||||
|
||||
public sealed record CreateVpnConfigCommand(Guid InboundId, string? Label) : ICommand<Result<VpnConfigDto>>;
|
||||
public sealed record CreateVpnConfigCommand(Guid InboundId, string? Label) : ICommand<Result<VpnConfigDto>>, IRequiresActivation;
|
||||
|
||||
@@ -20,9 +20,6 @@ public sealed class CreateVpnConfigCommandHandler(
|
||||
if (profile is null)
|
||||
return Result.Failure<VpnConfigDto>(AuthErrors.Unauthorized);
|
||||
|
||||
if (!profile.IsActivated)
|
||||
return Result.Failure<VpnConfigDto>(ConfigErrors.NotActivated);
|
||||
|
||||
var inbound = await dbContext.Inbounds.AsNoTracking()
|
||||
.FirstOrDefaultAsync(i => i.Id == command.InboundId, cancellationToken);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user