Class SeedPermissionsCommand
- Assembly
- KadicAuth.Application.dll
public sealed record SeedPermissionsCommand : IRequest<Result<SeedPermissionsResult>>, IBaseRequest
- Inheritance
-
objectSeedPermissionsCommand
- Implements
-
IBaseRequest
Constructors
SeedPermissionsCommand(List<PermissionSeedEntry>, bool, bool, AutoAssignOptions?)
public SeedPermissionsCommand(List<PermissionSeedEntry> Permissions, bool CreateMissingModules = false, bool DryRun = false, AutoAssignOptions? AutoAssign = null)
Parameters
PermissionsList<PermissionSeedEntry>Entradas a sembrar, normalmente de
PermissionReflectionScanner.ScanAll().CreateMissingModulesboolSi el módulo de una entrada no existe en
Auth.Modules: crearlo (true) o registrarlo enSkippedy 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.DryRunboolCalcula 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.AutoAssignAutoAssignOptionsAlcance 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
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>