mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-05-06 11:09:18 +02:00
feat: admin audit logging across all admin actions
- AdminLogger: JSON-lines → /var/log/xamxam.log (prod) / storage/logs/admin.log (dev) + best-effort DB mirror to admin_audit_log table - DB: admin_audit_log table, share_links.is_archived column - ShareLink: archive() replaces delete(), toggleActive() returns new state, listActive()/listArchived() split, validateLink blocks archived slugs - All action handlers wired: publish, unpublish, visibility, delete, csv/db export, tfe add/edit, tags, pages, apropos, form-help, access-request, maintenance, settings (formulaire toggles, objet types, smtp update), smtp-test - acces.php: archive button replaces delete; collapsible archived links section - setup-server.sh: provision /var/log/xamxam.log (www-data:xamxam 640)
This commit is contained in:
24
TODO.md
24
TODO.md
@@ -12,6 +12,30 @@
|
||||
- [x] `admin.css` — `.toast--warning` style + link colour
|
||||
- [x] `form.css` — `.flash-warning` style (partage form)
|
||||
|
||||
## Admin audit logging
|
||||
- [x] `AdminLogger` class — JSON-lines to `/var/log/xamxam.log` (prod) or `storage/logs/admin.log` (dev), mirrors to `admin_audit_log` DB table
|
||||
- [x] `admin_audit_log` DB table — created in schema + migrated
|
||||
- [x] `share_links.is_archived` column — archive replaces delete; stats preserved
|
||||
- [x] `ShareLink::archive()` — new method; `toggleActive` returns new state; `listActive()` / `listArchived()` split; `validateLink` blocks archived slugs
|
||||
- [x] `actions/acces-etudiante.php` — delete→archive, all actions logged (create, toggle, set_password, archive)
|
||||
- [x] `actions/publish.php` — publish/unpublish logged
|
||||
- [x] `actions/delete.php` — delete / bulk-delete / delete-all logged
|
||||
- [x] `actions/visibility.php` — visibility changes logged
|
||||
- [x] `actions/export-csv.php` — CSV export logged
|
||||
- [x] `actions/export-db.php` — DB export logged
|
||||
- [x] `actions/edit.php` — TFE edit logged
|
||||
- [x] `actions/formulaire.php` — TFE add from admin logged
|
||||
- [x] `actions/tag.php` — rename/merge/delete logged
|
||||
- [x] `actions/page.php` — static page edits logged
|
||||
- [x] `actions/apropos.php` — à-propos edits logged
|
||||
- [x] `actions/form-help.php` — form structure edits logged
|
||||
- [x] `actions/access-request.php` — approve/reject logged
|
||||
- [x] `actions/maintenance.php` — maintenance on/off logged
|
||||
- [x] `actions/settings.php` — formulaire toggles, objet types, SMTP update logged
|
||||
- [x] `actions/smtp-test.php` — SMTP test logged
|
||||
- [x] `templates/admin/acces.php` — archive button, archived links collapsible section
|
||||
- [x] `scripts/setup-server.sh` — provision `/var/log/xamxam.log` with correct ownership
|
||||
|
||||
## Duplicate warning display fixes
|
||||
- [x] `toast-fragment.php` — 204 guard now also checks `warning`; warning was silently discarded before
|
||||
- [x] `partage/index.php` — warning stored as plain text (no pre-escaping); `htmlspecialchars()` applied once at render; was double-encoded before
|
||||
|
||||
Reference in New Issue
Block a user