Skip to content

Espace « Mes partages » pour l'invité — regrouper tous ses accès reçus #273

Description

@ronan-develop

Description

Aujourd'hui, un invité (guest) n'a aucun moyen de retrouver l'ensemble de ses partages depuis l'application : sa seule porte d'entrée est le lien contenu dans l'email reçu à chaque nouveau partage (ShareNotificationMailer/GuestAccountCreator). S'il perd ou supprime l'email, ou veut simplement retrouver ce qu'on lui a partagé, il n'a aucun recours.

Objectif : un espace dédié (ex. /mes-partages) listant tous les Share actifs où l'utilisateur connecté est guest, avec accès direct à chaque ressource (album/dossier/fichier), sans dépendre du lien email.

Contexte technique

  • Share (src/Entity/Share.php) porte déjà guest (ManyToOne User) + resourceType/resourceId polymorphe, avec un index dédié idx_share_lookup(guest_id, resource_type, resource_id) — la requête "tous les partages reçus par cet invité" est donc immédiate à écrire (pas de migration de schéma attendue).
  • isActive()/isExpired() existent déjà sur Share pour filtrer les partages expirés.
  • La résolution ressource → URL existe déjà dans ShareNotificationMailer::resolveAccessUrl() — à factoriser/réutiliser plutôt que dupliquer.
  • Prévoir le résultat vide (aucun partage reçu) et les partages expirés (les exclure ou les afficher grisés, à trancher en conception).

Critères d'acceptation

  • Un invité connecté peut accéder à une page listant tous les partages actifs dont il est le destinataire (nom de la ressource, propriétaire, type, permission read/write, date d'expiration éventuelle)
  • Chaque entrée pointe vers un accès direct à la ressource (réutilise la résolution d'URL existante)
  • Les partages expirés n'apparaissent pas dans la liste (ou sont clairement distingués)
  • Un lien vers cet espace est visible dans la navigation pour tout utilisateur accountType = guest
  • Tests : accès non autorisé (un invité ne voit que ses propres partages), happy path, cas limite (aucun partage / partage expiré)

Zone concernée

API (endpoint, State, ApiResource) + Frontend (CSS, Twig, Stimulus)

Effort estimé

M — 1 journée

Metadata

Metadata

Assignees

No one assigned

    Labels

    apiModifications ou ajouts concernant l’API (routes, contrôleurs, ressources…).featureNouvelle fonctionnalitéfrontendCSS, Twig, Stimulus, JS

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions