Table of Contents

Class SeedPermissionsCommand

Namespace
KadicAuth.Application.Permissions.Commands.SeedPermissions
Assembly
KadicAuth.Application.dll
public sealed record SeedPermissionsCommand : IRequest<Result<SeedPermissionsResult>>, IBaseRequest
Inheritance
object
SeedPermissionsCommand
Implements
IRequest<Result<SeedPermissionsResult>>
IBaseRequest

Constructors

SeedPermissionsCommand(List<PermissionSeedEntry>, bool, bool, AutoAssignOptions?)

public SeedPermissionsCommand(List<PermissionSeedEntry> Permissions, bool CreateMissingModules = false, bool DryRun = false, AutoAssignOptions? AutoAssign = null)

Parameters

Permissions List<PermissionSeedEntry>

Entradas a sembrar, normalmente de PermissionReflectionScanner.ScanAll().

CreateMissingModules bool

Si el módulo de una entrada no existe en Auth.Modules: crearlo (true) o registrarlo en Skipped y continuar (false). Antes el batch entero abortaba con 422 en cuanto faltaba un módulo — por eso el hosted service lo trocea por módulo.

DryRun bool

Calcula todo y devuelve exactamente el mismo resultado, pero sin escribir nada. Permite que la UI enseñe el efecto real antes de confirmar, con el mismo código que luego lo aplica — hasta ahora la previsualización venía del diff, que compara en memoria con OrdinalIgnoreCase, mientras el seeder comparaba en SQL: podían discrepar.

AutoAssign AutoAssignOptions

Alcance de la asignación de los permisos nuevos. Por defecto, ninguno.

Properties

AutoAssign

Alcance de la asignación de los permisos nuevos. Por defecto, ninguno.

public AutoAssignOptions? AutoAssign { get; init; }

Property Value

AutoAssignOptions

CreateMissingModules

Si el módulo de una entrada no existe en Auth.Modules: crearlo (true) o registrarlo en Skipped y continuar (false). Antes el batch entero abortaba con 422 en cuanto faltaba un módulo — por eso el hosted service lo trocea por módulo.

public bool CreateMissingModules { get; init; }

Property Value

bool

DryRun

Calcula todo y devuelve exactamente el mismo resultado, pero sin escribir nada. Permite que la UI enseñe el efecto real antes de confirmar, con el mismo código que luego lo aplica — hasta ahora la previsualización venía del diff, que compara en memoria con OrdinalIgnoreCase, mientras el seeder comparaba en SQL: podían discrepar.

public bool DryRun { get; init; }

Property Value

bool

Permissions

Entradas a sembrar, normalmente de PermissionReflectionScanner.ScanAll().

public List<PermissionSeedEntry> Permissions { get; init; }

Property Value

List<PermissionSeedEntry>