Documentation
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'informationRGPD - Protection des données personnellesDORA - Résilience opérationnelle numériqueNIS-2 - Sécurité des réseaux et systèmes d'informationISO 27002:2022 - Contrôles de sécurité
Qualité et Environnement
ISO 9001:2015 - Management de la qualitéISO 14001:2015 - Management environnementalISO 45001:2018 - Santé et sécurité au travail
Vie Quotidienne
Montage Meuble IKEAPréparation Voyage ParfaitOrganisation Mariage ParfaitRévision Complète VéhiculeEntretien Saisonnier MaisonAdoption Animal de CompagnieDé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
/loginsi 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
- Tentative de récupération du token JWT (optionnel)
- Si token invalide/expiré :
user = None(pas d'erreur) - Vérification
is_publicdu référentiel - Si privé et non connecté : redirection
/login - 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
- Visiteur arrive sur
/documentation - Clique sur "RGPD - Protection des données personnelles"
- Redirigé vers
/norms/preview?name=RGPD... - Consulte le contenu complet en lecture seule
- Décide de s'inscrire pour créer une étude
Cas 2 : Client Partage un Référentiel
- Client veut montrer un référentiel à un prospect
- Copie l'URL de prévisualisation
- Envoie le lien au prospect
- Prospect consulte sans connexion
- Prospect s'inscrit après avoir vu le contenu
Cas 3 : Référentiel Privé
- Visiteur tente d'accéder à un référentiel privé
- Système détecte
is_public=False - Redirection vers
/login?next=/norms/{id}/preview - Après connexion, vérification des permissions
- 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
- Vérifiez régulièrement les liens de prévisualisation
- Mettez à jour la documentation publique
- Testez l'accès sans connexion
- 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