Guide Super Admin — Plateforme By Since
À qui s'adresse ce guide ?
Ce guide est destiné aux utilisateurs ayant le rôle ROLE_SUPER_ADMIN. Ce rôle donne un accès illimité à l'ensemble du système, toutes organisations confondues.
1. Hiérarchie des rôles
| Rôle | Hérite de | Description |
|---|---|---|
ROLE_USER |
— | Apprenant standard |
ROLE_CONSULTATION |
ROLE_USER | Consultation sans modification |
ROLE_ADMIN |
ROLE_CONSULTATION | Administrateur d'organisation |
ROLE_SUPER_ADMIN |
ROLE_ADMIN | Administrateur système global |
ROLE_DEV |
ROLE_SUPER_ADMIN | Développeur (accès technique étendu) |
ROLE_SINCE |
ROLE_SUPER_ADMIN | Rôle interne By Since |
Règle fondamentale : le SUPER_ADMIN dispose automatiquement de tous les droits applicatifs (via le RightManager). Il n'a pas besoin d'un profil de droits particulier.
2. Système des droits applicatifs (Profils & Droits)
Le système de droits fonctionne sur deux niveaux indépendants :
- Rôles Symfony (ROLE_ADMIN, ROLE_SUPER_ADMIN…) — contrôlent l'accès aux pages et fonctions système.
- Droits applicatifs (via Profils) — contrôlent les fonctions métier (ex.
LEARNING_PATH_ADMIN,SIC_EDIT,THEME_WRITE…).
Comment fonctionnent les profils
Un utilisateur reçoit ses droits métier via un profil (ex. "Admin", "Rédacteur"…). Chaque profil porte une liste de droits.
⚠️ Un utilisateur avec
ROLE_CONSULTATIONpeut avoir accès à des fonctions avancées s'il est rattaché à un profil qui porte ces droits (comme vu avec l'accès aux parcours). Toujours vérifier le profil, pas seulement le rôle.
Droits importants à connaître
| Droit | Fonctionnalité débloquée |
|---|---|
LEARNING_PATH_ADMIN |
Créer et administrer les parcours apprenants |
SIC_EDIT |
Éditer les activités |
THEME_WRITE |
Modifier les thèmes |
USER_INDEX |
Accéder à la liste des utilisateurs |
BASE |
Accès de base à la plateforme |
Les
ROLE_ADMINreçoivent automatiquementLEARNING_PATH_ADMINsans avoir besoin d'un profil.
Gérer les profils
Dans la console admin : Profils (menu visible SUPER_ADMIN uniquement)
- Créer/modifier un profil
- Ajouter ou retirer des droits à un profil
- Activer/désactiver un profil
Pour retirer un droit à un utilisateur : aller dans sa fiche utilisateur et changer ou retirer son profil.
3. Gestion des utilisateurs
Ce que le SUPER_ADMIN peut faire (que l'ADMIN ne peut pas)
- Voir et modifier les utilisateurs de toutes les organisations
- Attribuer le rôle
ROLE_SUPER_ADMINà un utilisateur - Modifier la fiche d'un utilisateur SUPER_ADMIN existant
- Accéder aux Groupes d'utilisateurs (menu dédié)
⚠️ Un ADMIN ne peut pas modifier un utilisateur qui a le rôle SUPER_ADMIN. Cette protection est volontaire.
Changer le rôle d'un utilisateur
Console admin → Utilisateurs → fiche utilisateur → champ "Rôles".
Impersonnation (se connecter en tant que)
Disponible pour ROLE_ADMIN et ROLE_SUPER_ADMIN :
- Dans la fiche utilisateur, bouton "Se connecter en tant que"
- Pour quitter :
?_switch_user=_exitdans l'URL, ou bouton dédié dans le menu
4. Gestion des organisations
Le SUPER_ADMIN voit et peut modifier toutes les organisations de la plateforme.
Accès
Console admin → Organisations
Ce qui est exclusif SUPER_ADMIN
| Fonctionnalité | Emplacement |
|---|---|
| Voir toutes les organisations | Console admin → Organisations |
| Modifier n'importe quelle organisation | Fiche organisation |
| Import massif d'utilisateurs | Fiche organisation → onglet Import |
| Gérer les profils de droits | Fiche organisation → onglet Profils |
| Configurer le prompt IA personnalisé | Fiche organisation → onglet IA |
Supprimer une organisation (CLI uniquement)
php bin/console bysince:organisation:delete --id=XX
- Demande plusieurs confirmations dont la saisie exacte du nom
- Génère automatiquement un export de sauvegarde avant suppression
- L'option
--allest bloquée en production
Restaurer une organisation (CLI uniquement)
php bin/console bysince:organisation:restore
- Restaure depuis les exports dans
data/Exports/Deleted_Organisations/ - Détecte les conflits d'ID et propose des options
5. Gestion du contenu (Activités & Thèmes)
Thèmes
Menu Thèmes visible uniquement par le SUPER_ADMIN.
- Voir et modifier les thèmes de toutes les organisations
- Copier un thème d'une organisation vers une autre
- Gérer les thèmes globaux (partagés)
Activités
- Le SUPER_ADMIN peut éditer toutes les activités même celles avec
restricted_to_owners = true - Cette règle est dans
Activity::canEdit(): les SUPER_ADMIN court-circuitent la restriction
Export/Import SIC
| Action | SUPER_ADMIN | ADMIN |
|---|---|---|
| Exporter les activités de son organisation | ✅ | ✅ |
| Exporter les activités d'une autre organisation | ✅ | ❌ |
| Importer pour n'importe quelle organisation | ✅ (sélecteur) | ❌ (sa propre org) |
6. Bibliothèque d'images
Deux sections distinctes dans la console admin :
A. Bibliothèque d'images (CRUD)
Accessible à tous les ADMIN. Permet de gérer le stock d'images importées :
- Lister, ajouter, modifier, supprimer des images
- Images stockées dans
public/uploads/images/ - Metadata : titre, source, attribution, licence, tags
- Sources possibles : Upload manuel, Pexels, Unsplash, Pixabay, Wikimedia, Flickr
B. Association images (SUPER_ADMIN uniquement)
Outil pour assigner des images aux activités et thèmes qui n'en ont pas encore.
Fonctionnement :
- Affiche toutes les entités (activités, thèmes) sans image
- Pour chaque entité : propose des suggestions depuis la bibliothèque (triées par tags communs)
- Onglet "Recherche en ligne" : cherche chez les providers externes (Wikimedia en priorité, puis Pexels, Unsplash…)
- Recherche automatique (baguette ✨) : utilise les tags de l'entité
- Recherche libre : saisie manuelle de mots-clés
- En cliquant sur une image → elle est importée et assignée en un clic
7. Ressources globales (SUPER_ADMIN uniquement)
Ces sections du menu admin sont visibles uniquement par le SUPER_ADMIN :
| Section | Utilité |
|---|---|
| Profils | Gérer les profils de droits |
| Groupes | Gérer les groupes d'utilisateurs |
| Thèmes | Voir et modifier tous les thèmes |
| Glossaire | Gérer le glossaire global |
| Tutoriels | Gérer les tutoriels de la plateforme |
| Règles de rédaction | Gérer les règles de rédaction des activités |
| Attributs de composant | Gérer les attributs des composants |
| Bibliothèque d'images | Stock d'images + association |
| Revue IA | Consulter les revues AFEST par organisation |
8. Tableau de bord — données analytiques
Le SUPER_ADMIN voit un tableau de bord enrichi :
- Graphiques globaux (toutes organisations confondues)
- Nombre total d'utilisateurs sur le système
- Organisations actives
- Statistiques apprenants globales
- Revues IA par organisation (détail)
Les ADMIN ne voient que les données de leur propre organisation.
9. Changelog et informations techniques
Dans la page Changelog (version / nouveautés) :
- Le SUPER_ADMIN voit les liens vers les issues GitHub associées à chaque version
- Accès aux notes techniques sur les corrections de bugs
10. Commandes CLI importantes
Ces commandes se lancent en SSH sur le serveur. Elles nécessitent un accès au serveur, pas le rôle SUPER_ADMIN dans l'interface.
Gestion des organisations
# Supprimer une organisation (avec export automatique)
php bin/console bysince:organisation:delete --id=XX
# Restaurer une organisation supprimée
php bin/console bysince:organisation:restore
# Exporter le SIC de toutes les organisations
php bin/console bysince:export:all-organisations
Gestion des utilisateurs
# Changer le mot de passe d'un utilisateur
php bin/console bysince:user:change-password
# Supprimer un utilisateur
php bin/console bysince:user:delete
Sauvegarde base de données
# Créer une sauvegarde manuelle
php bin/console bysince:backup:create
# Gérer les sauvegardes (lister, nettoyer)
php bin/console bysince:backup:manage
Audit de sécurité
# Audit complet des routes et permissions
php bin/console bysince:security:audit
# Nettoyage des données de sécurité
php bin/console bysince:security:cleanup
Maintenance contenu
# Nettoyer les fichiers médias orphelins
php bin/console bysince:cleanup
# Générer les images manquantes
php bin/console bysince:generate:all-images
# Vérifier les ressources obsolètes
php bin/console bysince:check:obsolete-resources
⚠️ En production, certaines commandes destructives demandent des confirmations multiples et la saisie exacte d'un nom. Il n'est pas possible de les annuler une fois exécutées.
11. Points de vigilance
Profil vs Rôle
Un utilisateur peut avoir
ROLE_CONSULTATIONmais être rattaché à un profil "Admin" qui lui donneLEARNING_PATH_ADMIN. Toujours vérifier les deux : le rôle ET le profil.
Modifier un SUPER_ADMIN
Seul un autre SUPER_ADMIN peut modifier la fiche d'un utilisateur SUPER_ADMIN. Un ADMIN sera bloqué.
Activités avec restricted_to_owners
Le SUPER_ADMIN peut toujours éditer et publier une activité, même si elle est restreinte aux propriétaires. C'est voulu mais à utiliser avec précaution.
Commandes --all en production
L'option
--allsur les commandes de suppression est bloquée en production. Il faut cibler un ID précis.
Impersonnation
Quand vous êtes connecté en tant qu'un autre utilisateur, un bandeau vous l'indique. N'oubliez pas de quitter l'impersonnation (
?_switch_user=_exit) avant de faire des modifications.
12. Accès rapide — URLs utiles
| Page | URL |
|---|---|
| Console admin | /fr/admin |
| Liste utilisateurs | /fr/admin?crudAction=index&crudControllerFqcn=...UserCrudController |
| Liste organisations | /fr/admin?crudAction=index&crudControllerFqcn=...OrganisationCrudController |
| Bibliothèque images | /fr/admin?crudAction=index&crudControllerFqcn=...LibraryImageCrudController |
| Association images | /fr/admin/image-association |
| Parcours apprenants | /fr/learning_path/index |
| Changelog | /fr/changelog |