# Gestion des Utilisateurs - Documentation ## Vue d'ensemble Le système de gestion des utilisateurs permet de créer, modifier et supprimer des utilisateurs qui auront accès à l'application admin Ferrovia. Cette fonctionnalité est accessible depuis la page **Paramètres** via l'onglet **Utilisateurs**. ## Accès 1. Connectez-vous à l'application admin 2. Accédez à la page **Paramètres** via le menu de navigation 3. Cliquez sur l'onglet **Utilisateurs** ## Fonctionnalités ### 1. Liste des utilisateurs La liste des utilisateurs affiche : - **Nom complet** : Nom et prénom de l'utilisateur - **Email** : Adresse email de l'utilisateur - **Rôle** : Badge coloré indiquant le rôle (Administrateur, Gestionnaire, Utilisateur) - **Statut** : Badge indiquant si l'utilisateur est actif ou inactif - **Actions** : Boutons pour modifier ou supprimer l'utilisateur #### Rôles disponibles - **Administrateur** (rouge) : Accès complet à toutes les fonctionnalités - **Gestionnaire** (bleu) : Accès aux fonctionnalités de gestion - **Utilisateur** (gris) : Accès limité aux fonctionnalités de base ### 2. Créer un utilisateur 1. Cliquez sur le bouton **+ Ajouter un utilisateur** 2. Remplissez le formulaire : - **Email*** : Adresse email de l'utilisateur (requis, unique) - **Nom*** : Nom de famille (requis) - **Prénom*** : Prénom (requis) - **Rôle** : Sélectionnez le rôle approprié (par défaut : Utilisateur) - **Utilisateur actif** : Cochez pour activer immédiatement l'utilisateur 3. Cliquez sur **Créer** ### 3. Modifier un utilisateur 1. Dans la liste, cliquez sur le bouton **Modifier** de l'utilisateur 2. Modifiez les champs souhaités dans le formulaire 3. Cliquez sur **Mettre à jour** ### 4. Supprimer un utilisateur 1. Dans la liste, cliquez sur le bouton **Supprimer** de l'utilisateur 2. Confirmez la suppression dans la boîte de dialogue > **⚠️ Attention** : La suppression d'un utilisateur est définitive et ne peut pas être annulée. ## Validation Le système effectue les validations suivantes : - L'email doit être valide et unique dans le système - Le nom et le prénom sont obligatoires - L'email est automatiquement converti en minuscules - Les espaces en début et fin de champs sont automatiquement supprimés ## Stockage des données Toutes les données des utilisateurs sont stockées dans la table `utilisateurs` de la base de données Supabase. ### Structure de la table ```sql CREATE TABLE utilisateurs ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), email VARCHAR(255) NOT NULL UNIQUE, nom VARCHAR(100) NOT NULL, prenom VARCHAR(100) NOT NULL, role VARCHAR(50) NOT NULL DEFAULT 'utilisateur', actif BOOLEAN NOT NULL DEFAULT true, created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(), updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() ); ``` ## Installation de la table Pour créer la table dans votre base de données Supabase : 1. Accédez à votre dashboard Supabase 2. Allez dans **SQL Editor** 3. Exécutez le script `supabase_utilisateurs.sql` fourni à la racine du projet 4. Vérifiez que la table a été créée avec succès ## API Les fonctions API sont disponibles dans `src/api/utilisateurs/index.js` : - `getAllUtilisateurs()` : Récupère tous les utilisateurs - `createUtilisateur(userData)` : Crée un nouvel utilisateur - `updateUtilisateur(id, userData)` : Met à jour un utilisateur existant - `deleteUtilisateur(id)` : Supprime un utilisateur Toutes les fonctions retournent un objet `{ data, error }` : - En cas de succès : `{ data: {...}, error: null }` - En cas d'erreur : `{ data: null, error: {...} }` ## Bonnes pratiques 1. **Emails uniques** : Chaque utilisateur doit avoir une adresse email unique 2. **Rôles appropriés** : Assignez les rôles en fonction des responsabilités réelles 3. **Désactivation vs Suppression** : Préférez désactiver un utilisateur plutôt que le supprimer pour conserver l'historique 4. **Vérification régulière** : Vérifiez régulièrement la liste des utilisateurs actifs ## Dépannage ### L'onglet Utilisateurs n'apparaît pas - Vérifiez que vous avez bien les dernières modifications du code - Assurez-vous que la page Paramètres est correctement chargée ### Erreur lors de la création d'un utilisateur - Vérifiez que l'email n'est pas déjà utilisé - Assurez-vous que tous les champs obligatoires sont remplis - Vérifiez la connexion à Supabase ### La table utilisateurs n'existe pas - Exécutez le script SQL `supabase_utilisateurs.sql` dans votre base de données Supabase - Vérifiez les permissions de votre clé API Supabase ## Support Pour toute question ou problème, consultez : - La documentation de Supabase : https://supabase.com/docs - Les logs de la console du navigateur pour plus de détails sur les erreurs