Files
gestion_projet/GUIDE_ADMIN.md
T
2026-08-10 22:06:49 +02:00

5.0 KiB

Guide de mise en place — Comptes & Panel Admin

Ce guide explique, étape par étape, comment activer le panel d'administration (création / suppression de comptes, gestion des rôles) pour ton équipe.

Tu ne fais ça qu'une seule fois. Ensuite, tout se gère depuis l'appli.


Vue d'ensemble

Qui Voit quoi
Toi (admin) Tout + un menu « Administration » pour gérer les comptes
Tes collègues L'appli normale, juste un écran « Se connecter »

Les clés Supabase sont déjà intégrées dans l'appli (fichier .env) : tes collègues n'ont rien à configurer.


Étape 1 — Vérifier le fichier .env

Le fichier .env (à la racine du projet) contient déjà ton URL et ta clé :

VITE_SUPABASE_URL=https://cesjrlfqeqftayhnqjkb.supabase.co
VITE_SUPABASE_ANON_KEY=eyJhbGci...

Rien à faire si c'est correct. (L'URL ne doit PAS contenir /rest/v1/.)


Étape 2 — Mettre à jour la base de données

  1. Va sur supabase.com → ton projet.
  2. Menu SQL EditorNew query.
  3. Copie tout le contenu du fichier :
    • base neuvesupabase/schema.sql
    • base déjà en servicesupabase/update_all.sql
  4. Colle-le et clique Run.

C'est sans danger même si tu l'as déjà exécuté : tout est « ré-exécutable ». Ça met en place is_admin, les commentaires, les pièces jointes et les sécurités du panel admin.


Étape 3 — Créer TON compte administrateur

Comme l'inscription publique est désactivée, on crée le tout premier compte (le tien) à la main :

  1. Dans Supabase → menu AuthenticationUsers → bouton Add user.
  2. Mets ton email + un mot de passe, et coche Auto Confirm User.
  3. Clique Create user.

Puis on te donne les droits admin :

  1. Retourne dans SQL EditorNew query, colle ceci en remplaçant l'email :
update public.profiles set is_admin = true
where id = (select id from auth.users where email = 'TON_EMAIL@exemple.com');
  1. Clique Run.

🎉 Tu es maintenant administrateur.


Étape 4 — Déployer l'Edge Function (le « serveur de confiance »)

C'est elle qui crée/supprime les comptes en sécurité. Deux méthodes au choix.

Méthode A — En ligne de commande (recommandée)

Dans un terminal, à la racine du projet :

# 1. Se connecter à Supabase (ouvre le navigateur)
npx supabase login

# 2. Déployer la fonction
npx supabase functions deploy admin-users ^
  --project-ref cesjrlfqeqftayhnqjkb --no-verify-jwt

--no-verify-jwt est normal ici : la fonction vérifie elle-même que l'appelant est bien un admin connecté (voir le code). La clé service_role est fournie automatiquement par Supabase, tu n'as rien à copier.

Méthode B — Par le tableau de bord (sans terminal)

  1. Supabase → menu Edge FunctionsCreate a new function.
  2. Nom : admin-users.
  3. Colle le contenu de supabase/functions/admin-users/index.ts.
  4. Déploie.
  5. Dans les réglages de la fonction, désactive « Enforce JWT Verification ».

Étape 5 — Construire et distribuer l'appli

npm run tauri:build

L'installateur se trouve ensuite dans : src-tauri/target/release/bundle/

Envoie ce fichier à tes collègues. Les clés sont dedans : ils n'ont rien à régler.


Au quotidien — Gérer les comptes

  1. Ouvre l'appli, connecte-toi avec ton compte admin.
  2. Menu Administration (visible uniquement pour les admins).
  3. Tu peux :
    • Créer un compte : nom, email, mot de passe provisoire (bouton « Générer » si tu manques d'imagination), pôles, et droits admin
    • Modifier un membre : nom, email, mot de passe, photo, pôles
    • Promouvoir / rétrograder un admin (avec confirmation)
    • Supprimer un compte

Communique l'email + le mot de passe provisoire à chaque membre. Il se connecte, c'est tout.


Notes de sécurité

  • La clé anon dans l'appli est publique par nature : aucun risque.
  • La clé service_role (toute-puissante) n'est jamais dans l'appli : elle reste cachée dans l'Edge Function, côté serveur.
  • Un membre normal ne peut pas se promouvoir admin lui-même (bloqué côté base).
  • Tu ne peux pas supprimer ni rétrograder ton propre compte admin (anti-blocage).
  • Depuis la v0.2, la suppression d'un projet est réservée à son créateur ou à un administrateur (avant, n'importe quel membre pouvait tout effacer).

⚠️ Après la mise à jour v0.2 — redéployer la fonction

La migration v10 supprime la colonne profiles.role, dans laquelle l'ancienne version de l'Edge Function écrivait. Redéploie-la, sinon la création de comptes échouera :

npx supabase functions deploy admin-users --no-verify-jwt