|
|
5fd88b5a9d
|
feat(infra): IUsuarioRepository.UpdatePermisosJsonAsync + impl Dapper [UDT-009]
|
2026-04-15 21:33:39 -03:00 |
|
|
|
9dcd63543e
|
feat(auth): extend LoginResponse with username + mustChangePassword + ultimoLogin [UDT-008]
|
2026-04-15 17:39:48 -03:00 |
|
|
|
be2257a9bf
|
feat(infra): BATCH 4 - Permiso/RolPermiso repos Dapper + tests integracion [UDT-005]
|
2026-04-15 15:39:25 -03:00 |
|
|
|
34b714750a
|
feat(api): UDT-004 dominio + repositorio + application roles (tdd)
- Migraciones V003 (tabla Rol + 8 seeds canonicos) y V004 (drop CK + FK Usuario.Rol)
- Dominio: Rol entity + 3 excepciones (RolNotFound/AlreadyExists/InUse)
- Infraestructura: RolRepository (Dapper) con List/Get/ExistsActive/Add/Update/HasActiveUsuarios
- Application: CRUD queries y commands (List, Get, Create, Update, Deactivate) + validators (codigo regex ^[a-z][a-z0-9_]*$)
- Validator UDT-003: whitelist alineada a codigos canonicos (full IRolRepository lookup diferido a Phase 5.1)
- Tests: 169 application + 15 api (todos verdes). Respawn configurado para re-seedear Rol canonical post-reset.
- Estricto TDD: RED/GREEN/TRIANGULATE en todos los handlers nuevos.
|
2026-04-15 12:31:29 -03:00 |
|
|
|
3d598faffc
|
feat(api): UDT-003 registro de usuarios — backend completo (Phases 1-6)
- Domain: Usuario.ForCreation factory, UsernameAlreadyExistsException, IUsuarioRepository extendido
- Application: CreateUsuarioCommand/Validator/Handler, UsuarioCreatedDto, AuthOptions password policy
- Infrastructure: UsuarioRepository.ExistsByUsernameAsync + AddAsync (INSERT OUTPUT INSERTED.Id), RoleClaimType="rol" en TokenValidationParameters
- Api: UsuariosController POST api/v1/users [Authorize(Roles="admin")], ExceptionFilter mapea UsernameAlreadyExistsException + SqlException 2627 → 409
- Tests (unit): 43 tests — 33 validator + 10 handler (107 total, green)
- Tests (integration): 7 tests CreateUsuarioEndpoint — 401/403/400/201/409/race/e2e (green)
- Fix: TestWebAppFactory.ConfigureTestServices reemplaza SqlConnectionFactory singleton con CS de test correcto
|
2026-04-15 10:47:48 -03:00 |
|
|
|
0c809da633
|
feat(infra): implement RefreshTokenRepository with Dapper and add GetByIdAsync to UsuarioRepository
|
2026-04-14 13:28:29 -03:00 |
|
|
|
ca57ce33b5
|
feat(udt-001): infrastructure (Dapper, BCrypt, JWT RS256, dispatcher)
|
2026-04-13 21:36:02 -03:00 |
|