Dossier personnel de l'élève monté comme lecteur réseau : rclone sert le dossier local, l'authentification est déléguée au portail via auth_request Nginx (mêmes identifiants que la connexion), sans nouveau système de comptes. Nettoyé par la purge RGPD comme les autres données d'élève. Corrige au passage un vrai bug d'isolation trouvé en testant avec deux comptes jetables : rewrite injectait la variable posée par auth_request_set, mais rewrite s'exécute dans une phase Nginx antérieure à cette variable, donc toujours vide - un élève pouvait lire le fichier d'un autre en devinant son nom. Corrigé par une location à regex nommée + proxy_pass. Détails : ADR 0008. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
35 lines
1.1 KiB
YAML
35 lines
1.1 KiB
YAML
---
|
|
# Bloc C (CLAUDE.md) : dossier de l'élève monté comme lecteur réseau WebDAV.
|
|
# rclone sert un dossier local en WebDAV (bascule vers un backend S3
|
|
# possible plus tard sans changer l'architecture : rclone sait servir les
|
|
# deux). Nginx fait l'authentification (déléguée au portail, mêmes
|
|
# identifiants que la connexion) et restreint chaque élève à son seul
|
|
# sous-dossier avant de relayer vers rclone — voir 05-nginx.yml et
|
|
# App\Http\Controllers\WebdavAuthController.
|
|
- name: installer rclone
|
|
ansible.builtin.apt:
|
|
name: rclone
|
|
state: present
|
|
|
|
- name: créer le dossier racine du WebDAV des élèves
|
|
ansible.builtin.file:
|
|
path: "{{ portail_dossier_app }}/storage/app/webdav"
|
|
state: directory
|
|
owner: www-data
|
|
group: www-data
|
|
mode: "0750"
|
|
|
|
- name: déployer le service systemd de rclone (WebDAV)
|
|
ansible.builtin.template:
|
|
src: rclone-webdav.service.j2
|
|
dest: /etc/systemd/system/rclone-webdav.service
|
|
mode: "0644"
|
|
notify:
|
|
- recharger systemd
|
|
- redémarrer rclone-webdav
|
|
|
|
- name: activer et démarrer rclone (WebDAV)
|
|
ansible.builtin.systemd:
|
|
name: rclone-webdav
|
|
state: started
|
|
enabled: true
|