Bonjour Florent, Sincèrement c'est la seule vraie solution pas trop moche à ton problème.
Cordialement, Michel Belleville 2010/3/16 Florent Florent <[email protected]> > Bonjour à tous, > > Dans mon application, quand un utilisateur est en cours d'édition sur une > page (vue 'edit'), je souhaite empêcher (ou afficher un avertissement) un > autre utilisateur d'accéder à cette page d'édition (je préfère éviter une > solution prévenant l'écrasement de données seulement au moment où > l'utilisateur soumet les données de son formulaire). > > Pour cela mon idée est de mettre un marqueur en base de données quand un > premier utilisateur accède à une page d'édition, et retirer ce marquer quand > il quitte cette page d'édition. Quand un utilisateur souhaite accéder à une > page d'édition, je le bloque si un tel marqueur existe pour cette page. > > Mon problème est de détecter quand un utilisateur quitte une page en cours > d'édition, car il existe plusieurs façons pour un utilisateur de quitter > cette page : après une sauvegarde réussie, en suivant un lien vers une autre > page, quand il ferme la fenêtre d'édition dans son navigateur, quand il > ferme son navigateur... J'ai l'impression que c'est impossible en pratique > de détecter tous ces cas de figure et les reporter au serveur pour retirer > le marqueur. > > Aussi pour détecter si un utilisateur est toujours sur sa vue edit, je > pense ajouter une information "date" aux marqueurs en BDD, et mettre un > periodically_call_remote dans mes vues edit qui rafraichirait la date du > marquer correspondant. Je ne bloquerais l'accès à une page d'édition pour un > autre utilisateur que si le marqueur correspondant a une date relativement > récente. > > Ça me paraît faisable mais ça reste un peu alambiqué, aussi je suis ouvert > à toute suggestion pour simplifier cette implémentation voir utiliser une > autre façon de faire :) > > Cordialement, > Florent > > -- > Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de > Google Groups. > Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse > [email protected] > Pour résilier votre abonnement envoyez un e-mail à l'adresse > [email protected] -- Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de Google Groups. Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse [email protected] Pour résilier votre abonnement envoyez un e-mail à l'adresse [email protected]
