bySince
DOCUMENTATION

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_CONSULTATION peut 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_ADMIN reçoivent automatiquement LEARNING_PATH_ADMIN sans 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=_exit dans 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 --all est 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 :

  1. Affiche toutes les entités (activités, thèmes) sans image
  2. Pour chaque entité : propose des suggestions depuis la bibliothèque (triées par tags communs)
  3. 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
  4. 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_CONSULTATION mais être rattaché à un profil "Admin" qui lui donne LEARNING_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 --all sur 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