Documentation
Imprimer / PDF

👁️ Prévisualisation Publique des Référentiels

Vue d'ensemble

La prévisualisation publique permet aux visiteurs non connectés de consulter le contenu des référentiels publics avant de s'inscrire.


🌐 Accès Public

Référentiels Publics

Les référentiels marqués comme publics (is_public=True) sont accessibles sans connexion :
- ISO 27001, RGPD, DORA, NIS-2, ISO 27002
- ISO 9001, ISO 14001, ISO 45001
- Référentiels "Vie Quotidienne" (IKEA, Voyage, Mariage, etc.)

Référentiels Privés

Les référentiels privés nécessitent une connexion :
- Redirection automatique vers /login
- Accès après authentification selon les permissions


🔗 URLs de Prévisualisation

Par ID

Format : /norms/{id}/preview

Exemple : /norms/1/preview

Usage : Liens directs depuis l'interface

Par Nom (Recommandé)

Format : /norms/preview?name={nom_exact}

Exemple : /norms/preview?name=ISO%2027001%3A2022%20-%20S%C3%A9curit%C3%A9%20de%20l%27information

Usage : Liens dans la documentation publique

Avantages :
- URLs lisibles et mémorisables
- Indépendant des IDs (peuvent changer)
- Meilleure expérience utilisateur


📚 Noms Exacts des Référentiels

Conformité et Sécurité

  • ISO 27001:2022 - Sécurité de l'information
  • RGPD - Protection des données personnelles
  • DORA - Résilience opérationnelle numérique
  • NIS-2 - Sécurité des réseaux et systèmes d'information
  • ISO 27002:2022 - Contrôles de sécurité

Qualité et Environnement

  • ISO 9001:2015 - Management de la qualité
  • ISO 14001:2015 - Management environnemental
  • ISO 45001:2018 - Santé et sécurité au travail

Vie Quotidienne

  • Montage Meuble IKEA
  • Préparation Voyage Parfait
  • Organisation Mariage Parfait
  • Révision Complète Véhicule
  • Entretien Saisonnier Maison
  • Adoption Animal de Compagnie
  • Déménagement Sans Stress

⚠️ Important : Les noms doivent correspondre exactement (casse, espaces, ponctuation).


🎨 Interface de Prévisualisation

Affichage

  • Titre du référentiel
  • Description complète
  • Catégories et sections
  • Questions avec leurs détails
  • Mode lecture seule (pas d'édition)

Éléments Visibles

  • ✅ Structure complète du référentiel
  • ✅ Toutes les questions et leurs descriptions
  • ✅ Catégories et organisation
  • ❌ Réponses (non applicables en prévisualisation)
  • ❌ Plans d'action (non applicables)

Bannière

Pour les visiteurs non connectés :

ℹ️ Vous consultez ce référentiel en mode prévisualisation.
   Inscrivez-vous pour créer des études et suivre votre conformité.

🔒 Sécurité et Permissions

Visiteurs Non Connectés

  • Accès : Référentiels publics uniquement
  • Mode : Lecture seule
  • Redirection : Vers /login si référentiel privé

Utilisateurs Connectés

  • Accès : Référentiels publics + référentiels affectés
  • Mode : Lecture seule en prévisualisation
  • Permissions : Vérification habituelle (ownership, superadmin)

Vérification

  1. Tentative de récupération du token JWT (optionnel)
  2. Si token invalide/expiré : user = None (pas d'erreur)
  3. Vérification is_public du référentiel
  4. Si privé et non connecté : redirection /login
  5. Si privé et connecté : vérification ownership

📝 Documentation Publique

Intégration

La page d'accueil publique (/documentation) liste tous les référentiels disponibles avec des liens de prévisualisation.

Format des Liens

[ISO 27001](/norms/preview?name=ISO%2027001%3A2022%20-%20S%C3%A9curit%C3%A9%20de%20l%27information)

Catégorisation

  • 🔐 Conformité et Sécurité
  • 🏆 Qualité et Environnement
  • 🏠 Vie Quotidienne

🛠️ Technique

Ordre des Routes (CRITIQUE)

⚠️ TRÈS IMPORTANT : L'ordre de déclaration des routes dans FastAPI est crucial !

# ✅ CORRECT : /norms/preview AVANT /norms/{norm_id}
@app.get("/norms/preview")
async def preview_by_name(...):
    # Recherche par nom

@app.get("/norms/{norm_id}/preview")
async def preview_by_id(...):
    # Prévisualisation par ID

@app.get("/norms/{norm_id}")
async def get_norm(...):
    # Détails du référentiel (authentification requise)

Raison : Si /norms/preview est après /norms/{norm_id}, FastAPI matche /norms/preview avec norm_id="preview", ce qui déclenche la dépendance get_current_user_from_cookie et redirige vers /login.

Décodage JWT Optionnel

from jose import jwt, JWTError

try:
    token = request.cookies.get("access_token")
    if token:
        payload = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM])
        user = get_user_from_payload(payload)
    else:
        user = None
except JWTError:
    user = None  # Token invalide, pas d'erreur

Contexte Template

{
    "is_authenticated": bool(user),
    "user_role": user.role if user else "public",
    "user": user,
    "norm": norm,
    "readonly": True
}

💡 Cas d'Usage

Cas 1 : Visiteur Découvre le RGPD

  1. Visiteur arrive sur /documentation
  2. Clique sur "RGPD - Protection des données personnelles"
  3. Redirigé vers /norms/preview?name=RGPD...
  4. Consulte le contenu complet en lecture seule
  5. Décide de s'inscrire pour créer une étude

Cas 2 : Client Partage un Référentiel

  1. Client veut montrer un référentiel à un prospect
  2. Copie l'URL de prévisualisation
  3. Envoie le lien au prospect
  4. Prospect consulte sans connexion
  5. Prospect s'inscrit après avoir vu le contenu

Cas 3 : Référentiel Privé

  1. Visiteur tente d'accéder à un référentiel privé
  2. Système détecte is_public=False
  3. Redirection vers /login?next=/norms/{id}/preview
  4. Après connexion, vérification des permissions
  5. Accès accordé si autorisé

📊 Avantages

Pour les Visiteurs

  • Découverte du contenu avant inscription
  • Transparence sur les référentiels disponibles
  • Décision éclairée pour s'inscrire ou non

Pour l'Entreprise

  • Marketing : Montre la valeur du produit
  • Conversion : Incite à l'inscription
  • Crédibilité : Démontre l'expertise

Pour les Clients

  • Partage facile avec des prospects
  • Démonstration sans créer de compte
  • Validation du contenu avant achat

🎯 Bonnes Pratiques

Référentiels à Rendre Publics

Recommandé :
- Référentiels de démonstration
- Référentiels standards (ISO, RGPD)
- Référentiels "Vie Quotidienne"

Déconseillé :
- Référentiels propriétaires
- Référentiels clients spécifiques
- Référentiels en cours de développement

Maintenance

  1. Vérifiez régulièrement les liens de prévisualisation
  2. Mettez à jour la documentation publique
  3. Testez l'accès sans connexion
  4. Surveillez les statistiques de consultation

Communication

  • Incluez les liens de prévisualisation dans les emails marketing
  • Partagez sur les réseaux sociaux
  • Intégrez dans les présentations commerciales
  • Utilisez dans la documentation externe