Skip to content

Partager un projet

Cette section décrit en détail le partage d’un projet dans HNetwork : inviter des collaborateurs par email, ajuster leurs rôles, transférer la propriété, et les cas particuliers liés aux projets rattachés à une organisation.

💡 Le partage est ouvert via le bouton 🤝 Partager de la toolbar du canvas ou de la page docs. La modale s’ouvre avec la liste des membres actuels et un formulaire d’invitation.

📷 [IMAGE — modale de partage] (à venir)

La modale « Partager le projet » se compose de deux sections :

  1. Formulaire d’invitation (en haut, visible si tu as les droits) — email + rôle + bouton Inviter.
  2. Liste des membres — owner en tête, puis admins, editors, viewers, triés par date d’ajout.

Quatre rôles existent au niveau du projet, indépendamment du rôle dans l’organisation :

RôleLibelléCapacités
ownerOwnerTout faire. Un seul owner par projet. Peut transférer la propriété ou supprimer le projet.
adminAdminModifier le projet (canvas + docs), gérer le partage. Ne peut pas supprimer le projet ni transférer la propriété.
editorÉditeurModifier le canvas et les docs. Pas de gestion du partage.
viewerLecteurLecture seule (canvas + docs en read-only).

💡 Les rôles owner et admin sont les seuls à pouvoir inviter ou retirer des membres. Les editors et viewers voient la liste mais ne peuvent que quitter le projet.

Les rôles affichent un badge coloré :

  • Owner → ambre (couronne 👑 implicite).
  • Admin → violet.
  • Éditeur → vert.
  • Lecteur → gris.

🔒 Visible uniquement si tu es owner ou admin du projet.

  1. Renseigne l’email du collaborateur.
  2. Choisis son rôle : Admin, Éditeur ou Lecteur.
  3. Clique sur Inviter.

Si le projet est rattaché à une organisation, l’autocomplete propose automatiquement les membres de l’org correspondant à ta saisie :

  • Suggestions par préfixe sur le nom ou l’email.
  • Maximum 6 résultats.
  • Les membres déjà présents sur le projet sont exclus de la liste.
  • Clique sur une suggestion pour pré-remplir l’email.

📷 [IMAGE — autocomplete membres org] (à venir)

Deux cas possibles :

  • L’invité s’est déjà connecté au moins une fois à HNetwork → l’accès est créé immédiatement, toast : « Membre ajouté ».
  • Pas de compte → l’invitation est enregistrée en attente :
    • L’accès sera créé automatiquement à la première connexion de la personne.
    • Toast : « Invitation enregistrée — l’accès sera créé à la première connexion de l’invité ».
    • ⚠️ HNetwork n’envoie pas d’email automatique à ce stade — pense à prévenir l’invité par un canal externe.
ErreurCauseSolution
409 — déjà membreL’email est déjà dans la liste.Modifier son rôle dans la liste.
400 — owner non transférableTentative d’inviter en tant que owner.Inviter en admin puis transférer la propriété (voir section 5).
400 — email invalideFormat d’email incorrect.Corriger la saisie.

Chaque ligne affiche :

ÉlémentDétails
AvatarPhoto de profil ou initiale colorée.
NomNom complet du membre (ou email à défaut).
EmailSous le nom (si différent du libellé principal).
Badge « vous »Repère ta propre ligne.
Badge « En attente »Repère les invitations non encore activées (ambre).
RôleBadge coloré (read-only) ou sélecteur (éditable).
Actions👑 transfert / 🔁 renouvellement / 🗑️ retrait.

📷 [IMAGE — liste des membres] (à venir)

  • Le sélecteur de rôle apparaît au survol pour les lignes éditables.
  • Disponible si :
    • Tu es owner ou admin.
    • La cible n’est pas le owner.
    • La cible n’est pas toi-même.
    • La cible n’est pas une invitation en attente (le rôle est figé jusqu’à acceptation).
    • Cas particulier admin → autre admin : seul le owner peut modifier le rôle d’un autre admin.
  • Changement appliqué immédiatement, sans confirmation.

L’action 🗑️ est disponible avec ces règles :

CibleToiAction possible si
Membre actif (non-owner)Owner / AdminToujours (sauf admin → admin qui est réservé à l’owner).
Toi-mêmeN’importe qui sauf ownerToujours — bouton libellé « Quitter ».
Invitation en attenteOwner / AdminToujours — bouton libellé « Annuler l’invitation ».
OwnerPersonneImpossible : il faut d’abord transférer la propriété.

Une confirmation s’affiche systématiquement :

  • Retrait standard : « Le membre perdra l’accès à ce projet ».
  • Self-leave : « Vous perdrez l’accès à ce projet » → la modale se ferme après confirmation, retour au dashboard.
  • Annulation d’invite : « L’invitation sera annulée. L’invité ne pourra plus rejoindre via ce lien. »

📷 [IMAGE — confirmation retrait] (à venir)

🔒 Réservé au owner du projet.

Le bouton 👑 apparaît sur chaque ligne d’un membre actif (non owner, non pending).

  1. Clique sur l’icône couronne.
  2. La modale de confirmation rappelle : « Le projet sera transféré à {nom}. Vous deviendrez administrateur. »
  3. Confirme.

Conséquences :

  • La cible devient le nouvel owner.
  • Tu passes admin automatiquement (demoted_role: "admin").
  • Le badge rôle dans la toolbar du canvas se met à jour en direct.

⚠️ Action immédiate et irréversible côté projet — pour récupérer la propriété, il faudra demander au nouvel owner de te la retransférer.

📷 [IMAGE — modale transfert de propriété] (à venir)

Une invitation en attente (badge ambre « En attente ») signifie que l’invité n’a pas encore activé son accès (il ne s’est jamais connecté à HNetwork avec cet email).

Chaque ligne affiche :

  • L’email invité.
  • L’expiration :
    • « Expire dans X j — accès à la première connexion ».
    • « Expire dans X h — accès à la première connexion » (jour J).
    • « Invitation expirée » si la fenêtre est dépassée.
    • « Accès créé à la première connexion » si l’invitation n’a pas d’expiration.

🔒 Visible si tu es owner ou admin, sur les lignes pending uniquement.

Le bouton 🔁 :

  • Refresh la date d’expiration.
  • Renvoie l’email d’invitation (toast : « Invitation renouvelée — email renvoyé »).
  • Pratique quand l’invitation est sur le point d’expirer ou si l’email initial a été perdu.

Cliquer 🗑️ ouvre la modale « Annuler l’invitation envoyée à {email} ? ». Après confirmation, l’invitation est supprimée et l’invité ne pourra plus rejoindre via ce lien.

📷 [IMAGE — invitation en attente] (à venir)

N’importe quel membre non-owner peut quitter un projet :

  1. Ouvre la modale de partage.
  2. Clique sur 🗑️ sur ta propre ligne.
  3. Confirme dans la modale « Quitter ce projet ? ».

Conséquences :

  • Tu perds l’accès au projet (canvas + docs).
  • La modale se ferme, retour au dashboard.
  • Si tu étais le dernier non-owner, le owner se retrouve seul (le projet n’est jamais orphelin).

⚠️ Si tu es le owner, l’action « Quitter » n’est pas proposée. Il faut d’abord transférer la propriété à un autre membre.

  • L’owner est le créateur, dans son espace perso.
  • Aucune relation avec une organisation.
  • Le partage se fait individu par individu (par email).
  • Pas d’autocomplete d’org disponible.
  • Le projet appartient à une organisation.
  • L’owner reste l’utilisateur qui l’a créé, mais l’org applique en plus son cloisonnement par utilisateur (un membre de l’org ne voit pas le projet par défaut, sauf si tu l’ajoutes ici).
  • L’autocomplete suggère les membres de l’org.
  • Les admins de l’org ayant la permission hnetwork.content.access_any_project peuvent outrepasser le cloisonnement et accéder au projet en édition depuis l’admin org → onglet Contenu (voir Admin → Contenu).

💡 Pour déplacer un projet perso → org : depuis la carte du projet sur le dashboard, clic sur l’icône ↔️ (voir Dashboard → carte projet).

ActionOwnerAdminEditorViewer
Voir la liste des membres
Inviter un membre
Modifier un rôle (non-admin)
Modifier un rôle d’un admin
Retirer un non-admin
Retirer un admin
Annuler une invitation
Renouveler une invitation
Transférer la propriété
Se retirer (quitter)❌¹

¹ L’owner doit d’abord transférer la propriété avant de quitter.

Pourquoi je ne peux pas inviter quelqu’un en owner directement ? Le rôle owner est unique et nécessite un transfert explicite depuis le owner actuel. Invite la personne en admin, puis transfère.

L’invité a reçu une erreur 404 en s’inscrivant. C’est la limitation v3.1 : un email non connu de Kinde n’est pas trouvable à l’invitation. La v3.3 corrige ce point avec les pending invites Kinde. Solution : demande à l’invité de se créer un compte sur HNetwork au préalable, puis renouvelle l’invitation.

Comment partager avec une équipe entière ? Aujourd’hui, le partage projet se fait individu par individu. Pour un partage à l’échelle d’une équipe, utilise plutôt le partage par groupe (à l’étude — pour l’instant, ajoute chaque membre explicitement).

Le bouton « Partager » est désactivé. Le projet n’est pas encore chargé, ou tu n’as pas le droit de l’ouvrir.

Comment savoir qui est l’owner actuel ? La première ligne de la liste affiche le badge ambre Owner.