5 Commits
Author SHA1 Message Date
Soporte ZH Consultores 1097b2df00 docs(readme): patrón de sesiones PHP con read_and_close
Documenta el fix de 1bfb3fb en la sección "Patrones de código" para
que futuros contribuyentes no escriban a $_SESSION sin llamar
startSession(true), lo cual perdería el write en silencio.
2026-07-17 11:06:24 -05:00
Soporte ZH Consultores 7e8500c7fb rebrand: AALN → AAL (Noriega salió de la sociedad)
- Todos los strings de branding actualizados:
  - "AALN" / "AALN Law" → "AAL"
  - "Arias, Abrego, López & Noriega" → "Arias, Abrego & López"
  - "M. Noriega" (placeholder en sample card del landing) → "M. Arias"
- Website link cambia de aalnlaw.com a aal-law.com en landing
  y footer del portal
- Filenames de exportación a Excel/PDF: *_AALN → *_AAL
- Footer del PDF compartido (DonnaExport.toPDF) actualizado
- Mensajes de denegación de OAuth callback actualizados
- README refleja nuevo nombre y URL del firm

OAuth sigue aceptando @aal-law.com y @aalnlaw.com como dominios
válidos (configurado en /etc/donna/donna.env) para no romper logins
durante la transición de correos.
2026-06-04 22:56:31 -05:00
Soporte ZH Consultores d124c65639 fix(backup): respaldar TODO (DB + secrets + caddy + systemd) atómicamente
Bug: el script previo solo respaldaba la BD donna. /etc/donna/donna.env,
/etc/caddy/Caddyfile y los systemd units quedaban sin respaldo. Además,
si mariadb-dump fallaba a media corrida el .sql.gz parcial quedaba
como si fuera válido (se vio hoy con un archivo de 20 bytes).

Cambios:
- Output ahora es un solo tar.gz con DB + GRANTs + configs + MANIFEST
  (sha256 de cada archivo incluido)
- Atómico: tar se escribe a .tmp y se renombra solo al final
- Incluye SHOW GRANTS para poder recrear el usuario donna_app en un
  server nuevo sin tener que conocer el password de root del MariaDB
- Limpieza de archivos .sql.gz legacy también en la retención
- README documenta el procedimiento de restore en server nuevo
2026-06-04 22:46:43 -05:00
Soporte ZH Consultores 8d7c1eae12 docs(readme): actualizar al estado actual del sistema
- 5 apps live (escrituras, tramites, calendario, horas, admin)
  con descripción de cada una
- 4 roles (admin, socio, abogado, usuario) y matriz de permisos
- Patrón Bootstrap::inject + window.DONNA
- AuditLog y canView() documentados
- FK user_id en hours/obs
- Módulo compartido DonnaExport (Excel + PDF) con API JS
- Eventos de hoy en home
- 14 migraciones SQL listadas en orden
- Setup en server nuevo con aplicación batch de migraciones
- Guía "agregar una app nueva" actualizada
2026-06-04 22:42:52 -05:00
Soporte ZH Consultores 4ee32aec6d Initial commit — Donna portal v1
Setup completo del portal interno donna.aal-law.com:

* Landing público con OAuth login + grid de apps autenticado
* Flujo OAuth2 contra Mailcow (mail.aal-law.com)
* Sesiones SSO compartidas en el dominio (cookie donna_session, 8h)
* Whitelist de dominios aal-law.com / aalnlaw.com
* App "Control de Escrituras" migrada desde ZH-Consultores/control-escrituras
  (mismo schema, mismo frontend, ahora con shared Auth/Db/Config libs)
* Migraciones SQL para users, escrituras_tramites, escrituras_historial
* Caddy on :80 con rewrite extless → .php
* Backup diario MariaDB (systemd timer + script) con retención 14d
* Documentación de arquitectura en README + infra files en docs/infra
2026-05-11 19:10:36 +00:00