2011-04-13 2 views
3

J'utilise concevoir/cancan pour mon application et tout est assez son -. Fourni un utilisateur crée un compte et des signes dansélaborer/cancan compte démo

Ce que je voudrais faire est permettre à un utilisateur pour commencer sans créer de compte. Et puis inscrivez-vous s'ils veulent réellement sauver leur travail.

Est-ce que quelqu'un a déjà rencontré ça? Dois-je savoir comment créer des comptes factices avec un système? Ou permettre aux utilisateurs non autorisés d'accéder à la création de modèles dans mon application via CanCan?

Je pourrais entrer dans les détails sur la façon dont j'ai envisagé d'aborder cette question, mais il semble que ce soit un cas d'utilisation assez évident que quelqu'un a trouvé une bonne solution.

Merci à l'avance, Mike

Répondre

1

Si vous allez avec la création de comptes fictifs, vous devez suivre l'utilisateur en quelque sorte par l'intermédiaire d'un cookie et mettre en cache les valeurs dans ce cookie dans votre base de données. Cancan autorise les comptes invités via le modèle de capacité. Par exemple:

user ||= User.new # Guest user, for users who are not registered or don't have an account yet 

Ce qui vous suffit pour avoir commencé à appliquer des autorisations pour les utilisateurs non enregistrés. Notez cependant, le suivi par cookie seul n'est pas très fiable et peut conduire à un certain type de risque de sécurité (c'est-à-dire au moyen de détournement de cookies). Utilisateur, un jour, peut également décider de vider ses cookies.

Si nécessaire, je suggère de laisser l'utilisateur faire une interaction minimale avec un compte invité et motivant l'utilisateur à s'inscrire/enregistrer auprès de Devise autant que possible.

Espérons que ça aide!

+0

Merci, mis en œuvre de cette façon pour l'instant. Semble être en douceur jusqu'à présent. – CambridgeMike

0

En fait, je considère le même problème, j'ai une application de planification qui fait un calendrier. Pour obtenir plus de problème, je pense que vous utilisez

user ||= User.new 

Comme a été suggéré ci-dessus et en utilisant des cookies pour obtenir les données à la base de données une fois que l'utilisateur crée un compte. Cela signifie que vous n'auriez pas à vous inquiéter de supprimer les cookies, car ils créeraient un compte s'ils voulaient enregistrer des données.