Conformité RGPD : registre des traitements, droit à l'image, HTTPS
Registre des traitements (art. 30 RGPD) et formulaires d'autorisation de droit à l'image (majeur / mineur) générés depuis un nouvel onglet « RGPD » de l'administration (admins uniquement) : documents A4 imprimables et téléchargeables, pré-remplis à partir des Paramètres de l'association. Le registre recense les 7 traitements réels de l'application (adhésions, annuaire, inscriptions, facturation, espace membre, photos, e-mails) avec finalité, base légale, personnes, données, destinataires et durées ; la facturation est conservée 10 ans (obligation comptable, art. L123-22). Politique de confidentialité complétée du traitement de facturation (adresse, factures, paiements), de la conservation comptable de 10 ans et des destinataires (trésoriers, expert-comptable, administration fiscale). HTTPS en production : en-tête HSTS (1 an, includeSubDomains) et redirection HTTP→HTTPS (308) des requêtes reçues via le reverse proxy (X-Forwarded-Proto), sans impacter les appels directs (healthcheck). Nouveau drapeau FORCE_HTTPS dans docker-compose et .env.example, aux côtés de COOKIE_SECURE et TRUST_PROXY documentés pour la production. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Fkg15RCxNgUys4ru73He2o
This commit is contained in:
9 files changed
+453
-6
No files matched your search
@@ -9,6 +9,7 @@ import { UsersTab } from '../components/admin/AdminUsers.jsx';
|
||||
import { EmailCreatorTab } from '../components/admin/AdminEmail.jsx';
|
||||
import { RequestsTab } from '../components/admin/AdminRequests.jsx';
|
||||
import { BillingTab } from '../components/admin/AdminBilling.jsx';
|
||||
import { RgpdTab } from '../components/admin/AdminRgpd.jsx';
|
||||
|
||||
// Moderators get members/membership requests/rencontres/inscriptions/rencontres passées
|
||||
// (create + edit, never delete) — everything else (dashboard, taxonomy,
|
||||
@@ -25,6 +26,7 @@ const TABS = [
|
||||
{ key: 'categories', icon: '☲', label: 'Catégories', title: 'Catégories', roles: ['admin'] },
|
||||
{ key: 'contenu', icon: '▧', label: 'Contenu du site', title: 'Contenu du site', roles: ['admin'] },
|
||||
{ key: 'parametres', icon: '⚙', label: 'Paramètres', title: "Paramètres de l'association", roles: ['admin'] },
|
||||
{ key: 'rgpd', icon: '⚖', label: 'RGPD', title: 'Conformité RGPD', roles: ['admin'] },
|
||||
{ key: 'emails', icon: '✉', label: "Créateur d'e-mail", title: "Créateur d'e-mail", roles: ['admin'] },
|
||||
{ key: 'utilisateurs', icon: '⚿', label: 'Utilisateurs', title: 'Administrateurs, trésoriers & modérateurs', roles: ['admin'] },
|
||||
];
|
||||
@@ -161,6 +163,7 @@ export function AdminShell() {
|
||||
{tab === 'categories' && <CategoriesTab />}
|
||||
{tab === 'contenu' && <ContenuTab />}
|
||||
{tab === 'parametres' && <ParametresTab />}
|
||||
{tab === 'rgpd' && <RgpdTab />}
|
||||
{tab === 'emails' && <EmailCreatorTab />}
|
||||
{tab === 'utilisateurs' && <UsersTab />}
|
||||
</div>
|
||||
|
||||
@@ -50,6 +50,13 @@ export default function Confidentialite() {
|
||||
<br /><em>Finalité :</em> annuaire public des entreprises membres. <em>Base légale :</em> exécution de l'adhésion ; la photo est publiée avec le consentement de la personne, qui peut la retirer à tout moment depuis son espace membre.
|
||||
</span>
|
||||
</div>
|
||||
<div style={row}>
|
||||
<span style={cellTitle}>Facturation des adhésions</span>
|
||||
<span>
|
||||
Identité, adresse de facturation, email, montants, moyen et date de paiement, numéro de facture.
|
||||
<br /><em>Finalité :</em> émettre les factures d'adhésion, suivre les paiements et tenir la comptabilité. <em>Base légale :</em> obligation légale (comptable et fiscale) et exécution de l'adhésion.
|
||||
</span>
|
||||
</div>
|
||||
<div style={{ ...row, borderBottom: 'none' }}>
|
||||
<span style={cellTitle}>Espace membre</span>
|
||||
<span>
|
||||
@@ -71,15 +78,17 @@ export default function Confidentialite() {
|
||||
Les demandes d'adhésion non abouties sont supprimées au plus tard 3 ans après leur dépôt.
|
||||
Les inscriptions aux rencontres sont conservées le temps de la saison en cours puis archivées
|
||||
à des fins de statistiques de fréquentation (nombre de participants uniquement).
|
||||
Les comptes de connexion sont supprimés avec la fiche du membre.
|
||||
Les factures et pièces comptables sont conservées 10 ans, conformément aux obligations
|
||||
comptables et fiscales. Les comptes de connexion sont supprimés avec la fiche du membre.
|
||||
</p>
|
||||
</LegalSection>
|
||||
|
||||
<LegalSection title="Destinataires et hébergement">
|
||||
<p>
|
||||
Les données sont accessibles aux seuls administrateurs et modérateurs habilités de
|
||||
l'association, soumis à une obligation de confidentialité. Les fiches de l'annuaire et les
|
||||
photographies des rencontres sont, elles, publiées sur le site public.
|
||||
Les données sont accessibles aux seuls administrateurs, trésoriers et modérateurs habilités de
|
||||
l'association, soumis à une obligation de confidentialité ; les données comptables peuvent être
|
||||
communiquées à l'expert-comptable et à l'administration fiscale le cas échéant. Les fiches de
|
||||
l'annuaire et les photographies des rencontres sont, elles, publiées sur le site public.
|
||||
</p>
|
||||
<p>
|
||||
Les données sont hébergées par <LegalValue value={s.association_host_name} label="nom de l'hébergeur" />,{' '}
|
||||
|
||||
Reference in new issue
Block a user