This website requires JavaScript.
39160bbb83
feat(api): PuntosDeVentaController + ExceptionFilter mappings ADM-008
dmolinari
2026-04-17 12:34:30 -03:00
489359f0b8
feat(infrastructure): PuntoDeVentaRepository con Dapper + mapping SqlException + registro DI
dmolinari
2026-04-17 12:29:16 -03:00
50f6f2b67a
feat(application): repository abstraction + DTOs + validators + handlers CRUD PuntosDeVenta con auditoría + retry deadlock
dmolinari
2026-04-17 12:28:11 -03:00
43877bd4a1
feat(domain): entidad PuntoDeVenta + SecuenciaComprobante + TipoComprobante + excepciones
dmolinari
2026-04-17 12:21:45 -03:00
bef8977c5c
feat(db): migration V013 + SP usp_ReservarNumeroComprobante para ADM-008
dmolinari
2026-04-17 12:16:56 -03:00
b7ac9831f9
Merge pull request '#18 fix(adm-001): cascada de inactividad Medio→Seccion'
dmolinari
2026-04-17 14:50:03 +00:00
3829c93af6
test(secciones): cobertura cascada de inactividad — issue #16
dmolinari
2026-04-17 11:46:14 -03:00
4fb25356a3
feat(web): banner y disabled de secciones de medio inactivo — issue #16
dmolinari
2026-04-17 11:46:09 -03:00
455954fa98
feat(api): mapping 409 medio_inactivo en ExceptionFilter — issue #16
dmolinari
2026-04-17 11:46:05 -03:00
870cbe91b3
feat(secciones): validar medio activo en update/deactivate/reactivate — issue #16
dmolinari
2026-04-17 11:46:01 -03:00
1ad6633cdd
feat(domain): MedioInactivoException (issue #16 )
dmolinari
2026-04-17 11:45:56 -03:00
91d353655d
Merge pull request '#15 ADM-001: Medios y Secciones (fundacional)'
dmolinari
2026-04-17 14:37:15 +00:00
740298a9e1
fix(web): reemplazar <select> nativos por shadcn Select (dark mode compat) — ADM-001
dmolinari
2026-04-17 10:13:20 -03:00
6b946f6080
feat(web): Medios + Secciones admin UI + hooks + routing — ADM-001 B7+B8
dmolinari
2026-04-16 19:28:30 -03:00
13480ad8c2
feat(api): MediosController + SeccionesController + ExceptionFilter mappings — ADM-001 B6
dmolinari
2026-04-16 19:16:33 -03:00
a6f4011806
fix(tests): resolve ADM-001 regressions in Api.Tests fixture
dmolinari
2026-04-16 19:08:32 -03:00
2f0da2d720
feat(infra): MedioRepository + SeccionRepository + integration tests — ADM-001 B5
dmolinari
2026-04-16 19:04:09 -03:00
a1a8e6e0cb
fix(tests): realign test expectations with V011 (ADM-001) seed — 22 permisos + Medios fixture
dmolinari
2026-04-16 19:04:06 -03:00
f672de78ce
feat(medios,secciones): application layer + handlers TDD — ADM-001 B3+B4
dmolinari
2026-04-16 18:53:57 -03:00
bb98dbf217
feat(domain): Medio + Seccion entities + 4 exceptions — ADM-001 B2
dmolinari
2026-04-16 18:45:46 -03:00
ff7d8986fd
feat(db): Medio + Seccion (temporal tables + seed) — ADM-001 B1
dmolinari
2026-04-16 18:13:54 -03:00
7c0646be0d
Merge pull request 'UDT-010: Infraestructura de Auditoría y Trazabilidad — Closes #6 ' (#14 ) from feature/UDT-010 into main
dmolinari
2026-04-16 20:30:17 +00:00
9eac044752
feat(jobs): 3 audit maintenance jobs (Quartz.NET, UDT-010 B11)
dmolinari
2026-04-16 17:10:43 -03:00
b526df2125
feat(web): /admin/audit page + filtros (UDT-010 B12)
dmolinari
2026-04-16 17:07:13 -03:00
2bb90118ab
feat(api): GET /audit/events + /health/audit (UDT-010 B10)
dmolinari
2026-04-16 17:05:40 -03:00
b619c05762
feat(audit): security events en Auth + authorization handlers (UDT-010 B9)
dmolinari
2026-04-16 13:59:27 -03:00
a3f01bc6c9
feat(audit): enchufar audit en handlers de Rol (UDT-010 B8)
dmolinari
2026-04-16 13:54:47 -03:00
26efb74c22
feat(audit): enchufar audit en handlers de Usuario — Closes #6
dmolinari
2026-04-16 13:49:44 -03:00
a3d6214d09
feat(infra): AuditLogger + SecurityEventLogger impl (UDT-010 B6)
dmolinari
2026-04-16 13:41:10 -03:00
300badda73
feat(infra): audit + security event repositories (UDT-010 B5)
dmolinari
2026-04-16 13:38:05 -03:00
0b4af4c332
feat(api): audit context middleware + scoped impl (UDT-010 B4)
dmolinari
2026-04-16 13:32:13 -03:00
08d6622e43
feat(infra): JsonSanitizer + AuditOptions binding (UDT-010 B3)
dmolinari
2026-04-16 13:28:37 -03:00
68f96b90c7
feat(application): audit abstractions (UDT-010 B2)
dmolinari
2026-04-16 13:23:11 -03:00
c95bc7fe01
fix(tests): extend Respawn + collection config for UDT-010 temporal tables
dmolinari
2026-04-16 13:22:56 -03:00
1c79dfa0a4
feat(db): V010 audit infrastructure + temporal tables
dmolinari
2026-04-16 13:10:04 -03:00
2d1d187f6e
chore(udt-010): bootstrap rama + spike anti-MSDTC
dmolinari
2026-04-16 12:56:17 -03:00
d201d9e08e
Merge pull request 'Design System: bootstrap tokens + paleta brand El Día' (#13 ) from chore/design-system-tokens into main
dmolinari
2026-04-16 15:00:26 +00:00
fa76d0055a
feat(web): infra UI completa pre-ADM-001 — DataTable + 8 shadcn + MCP global
dmolinari
2026-04-16 11:54:14 -03:00
5f7d9e6b89
docs(skill-registry): actualizar compact rules design system v2.3
dmolinari
2026-04-16 11:32:07 -03:00
83d76b95d4
feat(web): tooltips Radix + toggle sidebar al lado del brand
dmolinari
2026-04-16 11:26:41 -03:00
7b7ef1c137
feat(web): sidebar colapsable con tooltips + fix scroll horizontal
dmolinari
2026-04-16 11:21:42 -03:00
41b6882b5c
feat(web): mas contraste cards/tables sobre bg + utility .surface
dmolinari
2026-04-16 11:15:36 -03:00
278e1cf378
fix(web): light mode profundidad + grid global + autofill fix
dmolinari
2026-04-16 11:10:06 -03:00
3bc2625e21
fix(web): agregar ThemeToggle en PublicLayout (login)
dmolinari
2026-04-16 11:05:39 -03:00
6e6c729bac
feat(web): design system v2 — tech sophisticated con glass + gradient mesh
dmolinari
2026-04-16 11:02:59 -03:00
c488e2430d
feat(web): bootstrap design system con paleta brand El Dia
dmolinari
2026-04-16 10:46:07 -03:00
492705c076
Merge pull request 'UDT-009: Overrides de PermisosJson por usuario — cierre módulo Auth' (#12 ) from feature/UDT-009 into main
dmolinari
2026-04-16 13:12:23 +00:00
6822d56e11
fix(web): montar Toaster + feedback toast en PermisosEditor [UDT-009]
dmolinari
2026-04-16 10:11:04 -03:00
a30b10ebff
fix(web): UsuarioPermisos shape nested para matchear backend [UDT-009]
dmolinari
2026-04-16 10:06:43 -03:00
b7882613a4
feat(web): UserEditPage con tabs Perfil+Permisos [UDT-009]
dmolinari
2026-04-15 21:50:55 -03:00
9dbf3e895d
feat(web): tabs.tsx + PermisosEditor tri-state [UDT-009]
dmolinari
2026-04-15 21:49:48 -03:00
c1426b2257
feat(web): api + hooks permisos overrides [UDT-009]
dmolinari
2026-04-15 21:48:06 -03:00
7d4dc4d2bb
feat(api): PUT /api/v1/users/{id}/permisos/overrides + excepciones domain + ExceptionFilter [UDT-009]
dmolinari
2026-04-15 21:43:38 -03:00
47323302cc
feat(api): GET /api/v1/users/{id}/permisos con CQRS handler [UDT-009]
dmolinari
2026-04-15 21:43:08 -03:00
5fd88b5a9d
feat(infra): IUsuarioRepository.UpdatePermisosJsonAsync + impl Dapper [UDT-009]
dmolinari
2026-04-15 21:33:39 -03:00
bf64ffb35e
feat(api): PermissionAuthorizationHandler resuelve overrides desde DB por request [UDT-009]
dmolinari
2026-04-15 21:32:35 -03:00
fb07a1139a
feat(application): LoginCommandHandler usa PermisoResolver para permisos efectivos [UDT-009]
dmolinari
2026-04-15 21:29:33 -03:00
86310de286
feat(security): remover claim permisos del JWT post-UDT-009 [UDT-009]
dmolinari
2026-04-15 21:28:26 -03:00
54955231bf
feat(infra): V009 migration + Usuario.WithPermisosJson + SqlTestFixture V009 schema [UDT-009]
dmolinari
2026-04-15 21:27:29 -03:00
da1eb83ac1
feat(application): PermisosOverride record + PermisoResolver static helper [UDT-009]
dmolinari
2026-04-15 21:25:09 -03:00
be86c2fac9
chore(repo): bootstrap feature/UDT-009 [UDT-009]
dmolinari
2026-04-15 21:23:43 -03:00
68897f446b
Merge pull request 'UDT-008: Gestión completa de usuarios' (#11 ) from feature/UDT-008 into main
dmolinari
2026-04-16 00:01:36 +00:00
06908263f6
fix(web): cablear ResetPasswordModal en UserEditPage [UDT-008]
dmolinari
2026-04-15 21:00:08 -03:00
9e93c70d8b
refactor(web): mover Cambiar contraseña de sidebar a menu perfil [UDT-008]
dmolinari
2026-04-15 20:55:26 -03:00
851fed8692
fix(web): cablear ResetPasswordModal en UserDetailPage [UDT-008]
dmolinari
2026-04-15 20:54:25 -03:00
2e2d4543ad
feat(web): router wiring completo + nav link usuarios + MustChangePasswordGate integration [UDT-008]
dmolinari
2026-04-15 18:12:54 -03:00
25ed0f6452
feat(web): ChangeMyPasswordPage + ResetPasswordModal — hooks, pages, modal [UDT-008]
dmolinari
2026-04-15 18:09:59 -03:00
64e0a8b5fb
feat(web): UserDetailPage + UserEditPage — get/update/deactivate/reactivate hooks y pages [UDT-008]
dmolinari
2026-04-15 18:06:54 -03:00
9512f4125d
feat(web): UsersListPage — api client, hook, filters, table, pagination [UDT-008]
dmolinari
2026-04-15 18:05:07 -03:00
d998d215e0
feat(web): authStore username+mustChangePassword + MustChangePasswordGate [UDT-008]
dmolinari
2026-04-15 18:02:20 -03:00
7d96d5ff18
feat(api): ResetPassword admin — TempPasswordGenerator, handler, endpoint POST /{id}/password/reset [UDT-008]
dmolinari
2026-04-15 17:55:45 -03:00
a3bd066f7b
feat(api): ChangeMyPassword — validator, handler, endpoint PUT /me/password [UDT-008]
dmolinari
2026-04-15 17:52:15 -03:00
473566f255
feat(api): Deactivate + Reactivate usuarios — idempotentes, anti-lockout, revoke tokens [UDT-008]
dmolinari
2026-04-15 17:50:54 -03:00
14c385fdb1
feat(api): UpdateUsuario — handler, validator, anti-lockout guard, revoke tokens [UDT-008]
dmolinari
2026-04-15 17:49:19 -03:00
2925336783
feat(api): List + GetById usuarios — handlers, repo, endpoints [UDT-008]
dmolinari
2026-04-15 17:46:23 -03:00
9dcd63543e
feat(auth): extend LoginResponse with username + mustChangePassword + ultimoLogin [UDT-008]
dmolinari
2026-04-15 17:39:48 -03:00
d1f7b3805b
feat(domain): V008 migration + Usuario with-methods + DomainException hierarchy [UDT-008]
dmolinari
2026-04-15 17:36:46 -03:00
5ddc5ddf02
chore(udt-008): bootstrap rama feature/UDT-008 [UDT-008]
dmolinari
2026-04-15 17:34:12 -03:00
c0d1ea4ac2
Merge pull request 'UDT-006: Middleware de Autorización (RBAC enforcement)' (#10 ) from feature/UDT-006 into main
dmolinari
2026-04-15 20:15:18 +00:00
8513e99554
test(api): assert count 21 permisos admin post-V007 [UDT-006]
dmolinari
2026-04-15 16:49:54 -03:00
96e7290fb7
refactor(web): eliminar guards inline rol admin en páginas de roles/permisos [UDT-006]
dmolinari
2026-04-15 16:49:21 -03:00
f6cdd7650b
feat(web): ProtectedRoute extraído + router migrado + CreateUserPage cleanup [UDT-006]
dmolinari
2026-04-15 16:41:39 -03:00
8935115da9
feat(web): usePermission + CanPerform [UDT-006]
dmolinari
2026-04-15 16:40:23 -03:00
2efd5e2fdb
feat(web): authStore + useLogin persisten permisos [UDT-006]
dmolinari
2026-04-15 16:39:18 -03:00
0218d8d371
feat(api): migrar controllers admin a RequirePermission [UDT-006]
dmolinari
2026-04-15 16:34:32 -03:00
4866c4f21f
feat(api): ForbiddenProblemDetailsHandler 403 shape [UDT-006]
dmolinari
2026-04-15 16:27:36 -03:00
58d0df601f
feat(api): RequirePermissionAttribute + PermissionAuthorizationHandler [UDT-006]
dmolinari
2026-04-15 16:26:30 -03:00
cdb8dcd03c
feat(api): login response permisos desde RolPermiso [UDT-006]
dmolinari
2026-04-15 16:24:21 -03:00
2afac53fca
Merge pull request 'UDT-005: Gestión de Permisos (RBAC) — catálogo + asignación rol↔permisos' (#9 ) from feature/UDT-005 into main
dmolinari
2026-04-15 19:02:02 +00:00
1a864e9f8b
fix(app): validar formato codigo rol en GetRolPermisos [UDT-005]
dmolinari
2026-04-15 15:56:49 -03:00
885a8cef17
feat(web): BATCH 6 - feature permisos con grid por modulo [UDT-005]
dmolinari
2026-04-15 15:46:49 -03:00
4913a35d06
feat(api): BATCH 5 - PermisosController + tests HTTP [UDT-005]
dmolinari
2026-04-15 15:42:03 -03:00
be2257a9bf
feat(infra): BATCH 4 - Permiso/RolPermiso repos Dapper + tests integracion [UDT-005]
dmolinari
2026-04-15 15:39:25 -03:00
704794a2e2
feat(app): BATCH 3 - handlers permisos con TDD [UDT-005]
dmolinari
2026-04-15 15:31:26 -03:00
7ddb71c24c
feat(domain): BATCH 2 - Permiso entity + catalogo const [UDT-005]
dmolinari
2026-04-15 15:31:20 -03:00
7d2190c37e
feat(db): BATCH 1 - V005/V006 Permiso y RolPermiso + seed [UDT-005]
dmolinari
2026-04-15 15:26:22 -03:00
f6ad371de4
chore(tests): BATCH 0 - agregar Permiso y RolPermiso a TablesToIgnore [UDT-005]
dmolinari
2026-04-15 15:26:19 -03:00
4d3e55c422
Actualizar README.md
dmolinari
2026-04-15 17:36:36 +00:00
e5ee8e673b
Merge pull request 'UDT-004: Gestión de Roles (tabla maestra + CRUD admin + validator dinámico + UI)' (#8 ) from feature/UDT-004 into main
dmolinari
2026-04-15 16:19:58 +00:00
57e4cdac01
chore(tests): limpia warning xUnit2012 en CreateUsuario_WithInactiveRol_Returns400
dmolinari
2026-04-15 13:03:18 -03:00