Partages
Liens publics avec expiration et mot de passe, rôles de partage, partage interne, avis de dépôt par courriel.
Deux mécanismes distincts, qui ne répondent pas à la même question.
Un lien public s'adresse à quelqu'un qui n'a pas de compte : un client, un fournisseur, un candidat. Il est servi à /lrvo/drive/<jeton>.
Un partage interne s'adresse à un collègue déjà dans l'application. L'élément apparaît dans son écran « Partagé avec moi », et l'accès suit sa session.
Les deux se créent depuis la même fenêtre, ouverte par le menu d'une ligne du navigateur, et le navigateur les signale ensuite dans sa colonne « Partage ». Voir Administration.
Les rôles
L'interface ne parle que de rôles : une phrase sur ce que peut le destinataire, la même des deux côtés. Le stockage, lui, garde un mode sur les liens et quatre droits élémentaires partout.
| Rôle | Ce que peut le destinataire | Où il est proposé |
|---|---|---|
| Peut consulter | Ouvrir et télécharger, rien d'autre. | Partout. |
| Peut déposer | Envoyer des fichiers sans voir le contenu. | Liens sur un dossier, uniquement. |
| Peut contribuer | Télécharger et ajouter, sans renommer ni supprimer. | Dossiers. |
| Peut tout gérer | Télécharger, ajouter, renommer, supprimer. Sur un fichier partagé en interne : télécharger et renommer. | Dossiers, et fichiers en partage interne. |
| Droits personnalisés | Chaque droit se règle à la main. | Paramètres d'un lien de gestion. |
Deux restrictions ne sont pas des choix d'interface, elles viennent du serveur.
Un lien vers un fichier ne propose que « peut consulter ». La racine d'un partage ne peut être ni renommée ni supprimée depuis le lien, et pour un lien vers un fichier ce fichier est la racine. Ajouter, de son côté, n'a de sens que dans un dossier. Proposer autre chose offrirait un droit qui ne s'exercerait jamais.
Le rôle « peut déposer » n'existe pas en partage interne. La discrétion du dépôt tient au refus du serveur de lister quoi que ce soit sur les routes publiques du lien. Un destinataire interne, lui, passe par les routes d'administration, où lister un dossier n'est pas filtré par les droits du partage : il verrait le contenu. Le rôle mentirait, il n'est donc pas offert.
Un partage qui ne correspond à aucun rôle, parce qu'il a été créé par une version antérieure du module, s'affiche « droits personnalisés » plutôt que sous une étiquette approchante.
Liens publics
Le jeton
64 caractères hexadécimaux tirés au hasard. C'est le seul justificatif du lien : quiconque l'a peut l'ouvrir, personne ne peut le deviner. La page publique est donc en noindex sans condition, parce qu'un lien indexé serait un lien divulgué.
Le titre rendu par le serveur est fixe, « Partage de fichiers », et ne consulte jamais la base : c'est celui que voient un robot et un aperçu de lien. Un titre calculé sur le serveur, qui nommerait le contenu ou changerait selon qu'un jeton existe ou non, ferait de la réponse un oracle sur des liens que personne n'est censé deviner.
Une fois la page ouverte dans le navigateur, le titre de l'onglet rejoint celui de la page, suivi du nom du site : « Dépôts de fichiers - Nom du site », « Téléchargement de fichiers - Nom du site », « Lien indisponible - Nom du site ». Le nom du site est celui de la marque du module, et le suffixe disparaît s'il n'est pas configuré. Le nom du contenu partagé, lui, ne figure jamais dans l'onglet : rien n'y est dit que la page n'affiche déjà en grand, et un destinataire qui garde plusieurs liens ouverts reconnaît ses onglets.
Le mode, sous les rôles
Chaque lien porte en base un mode, que les rôles recouvrent :
| Rôle choisi | Mode stocké |
|---|---|
| Peut consulter | read |
| Peut déposer | drop |
| Peut contribuer, peut tout gérer, droits personnalisés | manage, avec les droits correspondants |
Le mode « dépôt » n'est pas un affichage masqué : le serveur refuse de lister et de servir quoi que ce soit sur ce mode, y compris pour un identifiant deviné. C'est ce qui en fait une véritable boîte aux lettres, et il ne s'applique qu'à un dossier.
Un visiteur dépose par le même protocole qu'un administrateur, tranche par tranche à travers l'application, donc la taille d'un fichier déposé n'est pas plus limitée ici qu'ailleurs. Deux réserves tiennent à l'anonymat du visiteur : un dépôt n'écrase jamais un fichier existant, il crée un nom suffixé, et une session d'envoi ne se poursuit que depuis le lien qui l'a ouverte.
Le mode n'est pas modifiable après création. Transformer un lien de lecture en lien de gestion élargirait silencieusement les droits d'une URL déjà diffusée. Pour changer de mode, on révoque et on recrée : l'ancienne URL cesse alors de fonctionner, ce qui est le comportement attendu.
Les paramètres du lien le disent, et ne proposent donc pas de changer son rôle. Seule exception, un lien de gestion : ses droits fins se règlent après coup, parce qu'ils ne changent pas la nature du lien.
Réglages
Créer un lien ouvre une fenêtre courte, où trois réglages seulement sont proposés, tous facultatifs : un nom, un mot de passe et une expiration. Ce sont ceux qu'on veut poser d'avance, pendant qu'on sait encore à qui le lien s'adresse et avant que l'adresse ne circule.
Le mot de passe peut être tiré au sort par le bouton « Générer ». Un mot de passe généré s'affiche en clair, avec un bouton de copie : le serveur n'en garde qu'un condensat, donc personne ne pourra le relire ensuite. L'alphabet du tirage écarte les caractères qui se confondent à la lecture, O et 0, l et 1, parce qu'un mot de passe de partage se transmet souvent de vive voix.
Le reste se règle après coup, dans les paramètres du lien, une fois qu'il existe et qu'on sait ce qu'on en veut. Tous ces réglages sont modifiables tant que le lien vit.
| Réglage | Effet |
|---|---|
| Nom | Sert à reconnaître le lien dans la liste et dans l'historique. |
| Mot de passe | Une saisie ouvre une session de 12 heures, posée dans un témoin propre au lien. |
| Expiration | Après cette date, le lien répond « expiré ». |
| Nombre maximal de téléchargements | Au delà, le lien répond « épuisé ». |
| Avis de dépôt | Voir plus bas. |
LRVO_MODULE_DRIVE_SHARE_MAX_DAYS impose un plafond de durée de vie à tous les liens du site. Une expiration plus lointaine que le plafond est ramenée à celui-ci.
Changer ou retirer un mot de passe invalide les sessions en cours : sinon un visiteur déjà entré garderait l'accès malgré la révocation du secret.
Portée
Un lien sur un dossier donne accès à ce dossier et à ce qu'il contient, rien d'autre. Chaque requête vérifie que l'élément visé appartient bien au sous-arbre partagé, donc deviner l'identifiant d'un fichier voisin ne mène nulle part.
La recherche n'existe pas sur un lien public, et pas seulement dans l'interface : la route de listage n'accepte ni terme ni portée de recherche. Une recherche d'administration peut s'étendre à l'espace entier, et relayer sa portée ici aurait rendu celle du lien inopérante. Un partage se parcourt, il ne se fouille pas.
La racine du partage ne peut être ni renommée ni supprimée depuis le lien, même en mode gestion : cela changerait ce que voit le propriétaire du dossier, hors de la portée voulue.
Révocation
La révocation se confirme dans la ligne du lien, où la question remplace le menu le temps de répondre.
Un lien révoqué cesse immédiatement de fonctionner et ses sessions sont fermées. La ligne est conservée plutôt que supprimée, parce que l'historique continue de la nommer.
L'écran « Partages » liste les liens de l'espace partagé et de votre espace personnel avec leur état : actif, expiré, épuisé, révoqué, ou pointant sur un élément mis à la corbeille.
La page publique
Servie à /lrvo/drive/<jeton>, hors de l'administration, sans compte. Elle porte le logo et le nom du site, réglés par les variables décrites dans Configuration, et une bascule de thème clair / sombre : le destinataire n'a pas d'autre écran pour la régler.
Le cadre est celui du core, commun à toutes les pages publiques des modules : un destinataire qui reçoit ensuite un lien de rendez-vous ou une facture du même site reconnaît la page. Voir Pages publiques.
Quatre états, deux mises en page, pour qu'un lien qu'on déverrouille ne donne pas l'impression de changer de site en route. Le dépôt et la navigation gardent l'en-tête confortable, logo au-dessus d'un grand titre : un partage se lit comme un document qu'on ouvre, pas comme un outil qu'on manœuvre.
Les états qui tiennent en une phrase et au plus un champ prennent une boîte centrée : logo au-dessus, carte étroite au milieu de l'écran, mention de bas de page. C'est le gabarit de la page de connexion. Les états qui portent une vraie interface prennent la page entière.
| État | Mise en page | Ce qu'il affiche |
|---|---|---|
| Ouverture du lien | Boîte centrée | Un fuseau, le temps que la fiche du lien arrive. |
| Lien indisponible | Boîte centrée | Le motif exact : inexistant, révoqué, expiré, épuisé. Et la conduite à tenir, redemander un lien à l'expéditeur. |
| Mot de passe | Boîte centrée | La saisie seule. Rien du contenu, pas même son nom, n'est révélé avant l'ouverture. |
| Dépôt | Page | La zone de dépôt puis, dès le premier fichier choisi, la progression de chaque envoi, et les conditions qui s'appliquent. |
| Navigation | Page | Un titre, une phrase qui dit ce que permet le lien et jusqu'à quand, un fil d'Ariane, et la liste. |
La saisie du mot de passe
Une carte étroite, centrée verticalement, sous le logo du site. Le champ porte une étiquette visible, pas seulement une invite à l'intérieur : une invite disparaît à la première frappe et reste muette pour un lecteur d'écran.
Un mot de passe refusé affiche un bandeau rouge à pastille et vide le champ. Le titre de la carte ne nomme jamais le partage : le nom du contenu fait partie de ce que le mot de passe protège.
Le titre et la phrase d'en-tête
Le titre nomme l'action, pas le contenu. Un destinataire arrive sans contexte : un nom de dossier posé en gros ne lui apprend ni sur quelle page il se trouve, ni ce qu'on attend de lui. Le titre varie donc selon la nature du contenu et ce que le lien permet.
| Contenu | Lien | Titre |
|---|---|---|
| Dossier | lecture avec téléchargement | Téléchargement de fichiers |
| Dossier | gestion | Gestion de fichiers |
| Dossier | sans droit de téléchargement | Consultation de fichiers |
| Fichier | lecture avec téléchargement | Téléchargement du fichier |
| Fichier | sans droit de téléchargement | Consultation du fichier |
Une forme nominale, pas un infinitif. « Téléchargement de fichiers » nomme la page ; « Télécharger des fichiers » se lirait comme un bouton et s'adresserait au visiteur. Le titre annonce, la phrase qui suit s'adresse : chacun son registre.
La gestion passe avant les autres cas parce qu'elle les englobe : annoncer « Téléchargement de fichiers » sur un lien qui autorise aussi le dépôt et la suppression nommerait la moindre de ses possibilités.
Sous le titre, une phrase, pas une liste de faits. Elle se recompose selon le lien, en une à trois phrases courtes : ce qui a été partagé, jusqu'à quand, et ce qu'il reste de téléchargements.
Le dossier « Photos » vous a été partagé.
Le dossier « Photos » vous a été partagé. Vous avez jusqu'au 2 janvier 2027
pour télécharger son contenu.
Le fichier « rapport.pdf » vous a été partagé. Vous avez jusqu'au 2 janvier
2027 pour le télécharger. Il vous reste 3 téléchargements sur 5.
Le dossier « Photos » vous a été partagé. Le nombre de téléchargements
autorisés est atteint.Une énumération de fragments séparés par des points se déchiffre ; une phrase se lit. Le destinataire de cette page n'a pas de compte et n'a pas l'habitude des tableaux de bord de l'application.
Sans date d'expiration, la phrase d'échéance disparaît au lieu d'annoncer une absence : « Sans date d'expiration » occupait une ligne pour ne rien dire. L'échéance est donnée au jour et jamais à l'heure, parce que le bandeau d'avertissement porte l'heure exacte quand le terme approche, et que deux précisions concurrentes dans le même écran font douter de la bonne.
Ce que la phrase ne dit pas : le mot de passe, que le visiteur vient de saisir ; le nombre d'éléments et les tailles, que la liste juste en dessous porte déjà ; les droits d'ajout, de renommage et de suppression, que l'interface montre en positif par un bouton et un menu.
Le nom du lien n'apparaît nulle part. Le champ « Nom du lien » sert au propriétaire à reconnaître son lien dans la liste et dans l'historique : « Envoi client Dupont » est une note interne. Il tenait lieu de titre public quand il était rempli ; il n'est plus servi du tout, pas même dans la réponse JSON.
Annoncer le quota restant n'est pas une divulgation. Le visiteur détient déjà le jeton, et le lien lui répondra « épuisé » de toute façon une fois le plafond atteint : le lui dire avant lui évite de prendre un plafond pour une panne. Le décompte suit ses propres téléchargements sans recharger la page.
Un bandeau jaune prévient en plus quand le lien expire sous 48 heures, avec l'heure du terme. C'est le seul : le dernier téléchargement n'a plus le sien, puisque la phrase d'en-tête annonce désormais le décompte dans tous les cas, y compris à un. Rien n'annonce la lecture seule, pour la raison déjà donnée.
La liste
Trois colonnes, Nom, Taille et Modifié, sous un en-tête. Sur un écran étroit, les deux dernières se replient dans une sous-ligne du nom.
La carte garde une hauteur plancher, la même que les tableaux de l'administration : un partage de deux fichiers ne donne plus une carte haute de trois lignes perdue dans la page. Au premier chargement, des lignes fantômes occupent cette hauteur, pour que rien ne saute quand les données arrivent. Un dossier vide affiche une icône, un titre et la conduite à tenir, pas une phrase seule au milieu du vide.
Chaque ligne porte un menu en bout de course : ouvrir ou apercevoir, télécharger, renommer, supprimer. Les actions y sont regroupées plutôt qu'alignées en boutons, parce qu'une action destructive alignée avec les autres se clique par erreur, et parce que deux boutons en fin de ligne ne tiennent pas sur un téléphone. Le menu ne montre que ce que le rôle du lien autorise ; sans aucune action permise, il ne s'affiche pas.
Le renommage est disponible depuis un lien qui l'autorise, dans la même fenêtre qu'en administration. La racine du partage échappe à la règle : la renommer changerait ce que voit le propriétaire du dossier, hors de la portée voulue par le lien.
Le serveur liste par pages de cent éléments. Au-delà, un pied de liste annonce combien d'éléments sont affichés sur le total et offre de charger la suite, qui s'ajoute sans faire perdre sa place.
La recherche n'existe toujours pas ici, pour la raison donnée plus haut.
Tout télécharger
Sur un lien qui porte un dossier et qui autorise le téléchargement, un bouton Tout télécharger se tient au-dessus du tableau, à droite du fil d'Ariane, avant l'ajout de fichiers quand le lien l'autorise aussi : le dossier consulté part en une archive zip, sous-dossiers compris, nommée d'après lui. Descendre dans l'arborescence change la cible du bouton, qui archive toujours ce que la liste montre.
Le bouton disparaît sur un dossier vide, sur un lien qui ne porte qu'un fichier, dont la seule ligne a déjà son action, et une fois le plafond de téléchargements atteint, où le serveur refuserait de toute façon.
L'archive vaut un seul téléchargement sur le plafond du lien, pas un par fichier : le visiteur n'a fait qu'une demande, et décompter chaque entrée viderait un lien plafonné au premier clic. Le journal du propriétaire enregistre de même une seule ligne, sur le dossier.
Le serveur assemble et envoie l'archive au fil de l'eau, sans la construire en mémoire ni du côté du serveur ni du côté du navigateur : un dossier de plusieurs gigaoctets descend comme un fichier de plus. La contrepartie est qu'un gros dossier met quelques secondes à démarrer, le temps que la première entrée soit lue.
Miniatures et aperçus
La liste affiche les miniatures d'images. Un clic ouvre la visionneuse décrite dans Fichiers acceptés, la même qu'en administration.
Les deux ne suivent pas le même droit, et l'écart est voulu. La miniature relève de la lecture, l'aperçu relève du téléchargement, parce qu'il sert le fichier entier. Un lien qui ne permet pas de télécharger montre donc les miniatures mais n'ouvre aucun aperçu : voir de quoi il s'agit n'est pas l'emporter.
La page de dépôt
Le titre est fixe, Dépôts de fichiers, et la phrase qui le suit nomme la destination : « Vos fichiers seront transmis dans « Boîte de réception ». » C'est le gabarit dont l'en-tête de la page de navigation reprend la grammaire.
Un seul cadre, quel que soit l'état. Tant que rien n'est parti, la surface blanche est la zone de dépôt elle-même : bordure en pointillés, et au centre l'icône, « Glissez vos fichiers ici », « ou cliquez pour les choisir », le bouton Ajouter des fichiers, puis les conditions du dépôt sur une ligne discrète. Un rectangle en pointillés posé dans une carte donnait deux bordures à quelques pixels d'écart, et l'œil lisait le vide entre elles plutôt que la cible.
Le bouton est dans la zone parce qu'une zone en pointillés se lit comme un décor : qui ne la reconnaît pas cherche un bouton. Toute la surface reste cliquable, et répond aussi au clavier.
Dès le premier fichier choisi, la même surface devient une carte ordinaire qui porte la liste des envois. Le déposant vient d'agir : ce qu'il attend à cet endroit est la preuve que son fichier est arrivé, pas une invitation à recommencer. Une ligne d'en-tête compte les fichiers transmis sur le total de la vague pendant qu'elle progresse, puis affiche leur nombre et leur poids une fois tout parti ; à droite de cette ligne, un bouton Ajouter en second plan. Un avis passager confirme la fin de la vague, puis s'efface.
La liste reprend la ligne des listes de documents décrites plus haut : pastille d'icône selon le type de fichier, nom, poids et état en dessous, filets entre les lignes. Un envoi en cours et un fichier déposé sont la même chose à quelques secondes près. En bout de ligne, le pourcentage pendant la montée, une coche verte ensuite, une alerte rouge en cas d'échec, et le message d'erreur sous le nom.
Le glisser-déposer est écouté par le bloc entier, pas par la seule zone en pointillés : celle-ci a laissé la place à la liste, et un déposant qui vient de réussir un glissement n'a pas à changer de geste pour le fichier suivant. La surface se souligne pendant le survol d'un fichier glissé.
Les conditions du dépôt, la taille maximale par fichier et la date limite quand le lien en porte une, ferment la zone puis la carte des envois. Elles ne disparaissent à aucun moment : la limite vaut aussi pour les fichiers suivants.
Ce que le mode dépôt n'affiche pas
Ni liste, ni décompte d'éléments, ni miniature. La réponse du serveur ne les porte même pas : cacher côté navigateur laisserait le contenu à portée d'un appel direct.
Partage interne
Se règle depuis la même fenêtre. On choisit un compte, on choisit son rôle, et la personne rejoint la liste de celles qui ont accès.
Le sélecteur propose les comptes qui peuvent ouvrir le drive, et se filtre par nom ou par adresse. Partager ne demande que drive.share : la liste vient du module, pas de l'administration des comptes, et users.view n'est pas requise. Un compte sans drive.view n'y figure pas, parce qu'un partage ne lui donnerait rien à ouvrir.
Chaque ligne de cette liste porte son rôle et son menu : c'est là qu'un droit se change ou se retire, sans avoir à re-choisir la personne. Modifier un rôle remplace l'accès existant, il ne s'y ajoute pas.
Un compte qui a déjà accès n'est plus proposé à l'invitation : son accès se modifie dans sa ligne, où il est visible.
Un partage sur un dossier vaut pour tout son contenu. Quand plusieurs partages s'appliquent à un même élément, le plus permissif l'emporte : refuser une action que l'un des deux autorise serait incompréhensible pour le destinataire.
Un partage interne élargit la portée, il ne contourne pas le rôle : il faut toujours drive.view pour ouvrir le drive. Et un destinataire ne peut pas repartager ce qu'on lui a partagé, ni par lien ni à un tiers.
C'est le seul moyen d'ouvrir l'accès à un élément qui vit dans l'espace personnel de quelqu'un d'autre.
Ce que voit le destinataire
Un dossier partagé se parcourt comme un espace, mais il s'arrête à ses propres bords. Le destinataire ne voit ni les dossiers qui le contiennent, ni leur nom dans le fil d'Ariane, ni l'occupation de l'espace du propriétaire.
La recherche existe dans un dossier reçu en partage, mais elle s'arrête à ce dossier et à ses sous-dossiers. La portée « Tout l'espace » n'y est pas proposée, et le serveur la ramène au sous-arbre si elle est demandée quand même : l'espace est celui du propriétaire, et le fouiller listerait ce qui n'a pas été partagé.
Un élément ne quitte pas le partage par un déplacement. Le destinataire le range dans un autre dossier qui lui est partagé s'il a le droit d'y ajouter, jamais à la racine de l'espace du propriétaire : l'élément disparaîtrait de sa vue, et le propriétaire le retrouverait là où il ne l'a pas mis.
Un fichier partagé seul n'a pas de dossier où s'ouvrir. Il s'aperçoit, se télécharge et se renomme depuis « Partagé avec moi », selon les droits accordés.
Ce que chaque droit ouvre
Les droits du partage s'appliquent sur toutes les routes de l'administration, pas seulement à l'écran. Chaque action demande le droit ci-dessous et la permission du rôle qui la couvre.
| Droit | Ce qu'il ouvre |
|---|---|
| Télécharger | Aperçu, téléchargement, archive d'un dossier ou d'une sélection. |
| Ajouter | Dépôt de fichiers, création de dossiers, réception d'un élément déplacé. |
| Modifier | Renommage, déplacement, restauration d'une version, remplacement d'un fichier du même nom. |
| Supprimer | Mise à la corbeille. |
Lister le contenu et lire l'historique des versions ne demandent aucun droit particulier : il suffit que l'élément soit partagé.
Trois choses restent au propriétaire quel que soit le rôle accordé : repartager, lire la liste des liens et des personnes qui ont accès, et agir sur la corbeille. Un élément supprimé par un destinataire se restaure ou se purge depuis la corbeille de l'espace, que lui n'ouvre pas.
Dans un espace que le destinataire ouvre déjà
Rien n'empêche de partager un dossier de l'espace partagé. Le destinataire l'atteint alors par cet espace, comme tout le monde, et les droits du partage ne lui retirent rien : c'est son rôle qui décide. Le partage sert de signet. L'élément apparaît dans « Partagé avec moi » et s'ouvre dans son espace, avec toutes les portées de recherche et le fil d'Ariane complet.
Avis de dépôt par courriel
Se règle par partage, sur les liens qui acceptent des ajouts. On saisit une ou plusieurs adresses, et on choisit une cadence.
| Cadence | Comportement |
|---|---|
| Aucune | Rien n'est envoyé. |
| À chaque dépôt | Un courriel part juste après chaque fichier reçu. |
| Regroupée | Un seul courriel part quand plus rien n'est arrivé depuis la fenêtre configurée, 15 minutes par défaut. Quelqu'un qui dépose vingt fichiers déclenche donc un courriel, pas vingt. |
| Résumé quotidien | Un courriel par jour, à l'heure configurée, listant tout ce qui est arrivé. |
La cadence regroupée est celle qui convient au cas courant : elle évite l'avalanche sans faire attendre la journée entière.
Un envoi qui échoue laisse les dépôts en attente, donc la tâche suivante réessaie. Aucun avis n'est perdu à cause d'une panne de messagerie passagère, et un dépôt n'échoue jamais parce qu'un courriel n'est pas parti.
Les adresses de notification ne sont jamais exposées sur la page publique.
Ce qui apparaît dans l'historique
Chaque action passée par un lien est journalisée avec le nom du lien comme acteur, puisqu'un visiteur n'a pas de compte. Un condensat de son adresse IP est conservé, jamais l'adresse en clair : cela suffit à reconnaître deux dépôts venus de la même source sans garder de donnée personnelle.