admin: replace header 'Ajouter un TFE' nav link with toolbar button

This commit is contained in:
Pontoporeia
2026-04-16 11:50:59 +02:00
parent c4705f6265
commit 150099dc3c
12 changed files with 1166 additions and 76 deletions

23
TODO.md
View File

@@ -8,3 +8,26 @@
- [x] Organise all fields into `<fieldset>/<legend>` blocks: Informations du TFE, Composition du jury, Cadre académique, Fichiers, Métadonnées complémentaires
- [x] Remove double-wrapping of jury-fieldset (it has its own `<fieldset>`)
- [x] Add "Degrés d'ouverture et licences" section (Libre / Interne / Interdit + Généralités) wrapped in `if ($studentMode)` — hidden in admin
- [x] Migrate student mode form to shareable links system (/partage/<form-url>)
- [x] Create `share_links` database table (id, slug YYYYMMDD-random, password_hash, is_active, usage_count, created_by, created_at, expires_at nullable)
- [x] Create `ShareLink` model — generate slugs, validate, verify password, CRUD
- [x] Create `public/partage/index.php` — public form page (no auth required, validates link active + password if set)
- [x] Create `public/partage/.htaccess` — RewriteRule to route all partage paths to index.php
- [x] Create `public/partage/thanks.php` — post-submission confirmation page
- [x] Move student-specific licence explanation fieldset to partage form template
- [x] Share-link specific CSRF token (session-scoped `share_csrf_<slug>`) instead of session CSRF
- [x] Create admin page for managing student access links
- [x] Create `public/admin/student-access.php` — "Accès étudiant·e" page
- [x] Link to new page from admin navigation
- [x] Implement list view of all share links with status (active/disabled, password set, usage count, created date)
- [x] Implement create new link modal/form (optional expiration, password)
- [x] Implement toggle active/disabled status per link
- [x] Implement password set/change/clear per link
- [x] Implement delete link action
- [x] Copy-to-clipboard button for full partage URL
- [ ] Security and validation considerations
- [ ] Rate limiting on form submissions per share link
- [ ] Add flash messages / error handling for invalid/disabled/password-protected links