Bonsoir à tous, Pour ceux qui ne connaissent pas acts_as_tenant, cette gem permet de scope facilement des models pour chaque pseudo-instance de notre application (https://en.wikipedia.org/wiki/Multitenancy). Dans mon cas, je scope tout mon site par le domaine : http://www.rubybb.com et http://test.rubybb.com tapent au même endroit mais sont isolés l'un de l'autre par un « default_scope généralisé ».
J'ai des difficultés à résoudre cela : mes users sont égalements scopés, chaque site a sa propre liste d'utilisateur, il faut donc s'inscrire sur chaque domaine sur lequel on souhaite être présent. Je ne souhaite pas de SSO. Avec acts_as_tenant, la seule chose que j'ai à faire est d'ajouter un before filter dans mon application_controller « set_current_tenant(@domain) ». Mais dans un cas, ce before_filter arrive « trop tard » : http://stackoverflow.com/questions/14664708/multitenancy-with-devise-users-default-scoped-by-subdomain-breaks-sessions Pour résumer, si l'utilisateur (current_user) n'est pas trouvé, Devise invalide la session (ce n'est pas sûr à 100 % mais ça y ressemble beaucoup). Hors, cette invalidation semble se faire avant le before_filter set_current_tenant. C'est à dire que si le current_tenant a changé depuis la dernière page (on visite un autre domaine que celui où l'on est actuellement connecté), Devise ne trouvera pas l'utilisateur (default_scope incorrect) et invalidera la session. Les étapes pour assister au bug sont décrites en tête du lien précédent, il est très facile à reproduire. De même avec les sources du projet. Si quelqu'un a une piste (ou une autre gem ?), je lui en serai grandement reconnaissant. Merci à vous ! -- -- 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 recevez ce message, car vous êtes abonné au groupe Google Groupes Railsfrance. Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse [email protected]. Pour plus d'options, visitez le site https://groups.google.com/groups/opt_out .
