Pourquoi ne l'enregistrement d'un nouvel utilisateur en utilisant le plugin ACEGI pour GRAILS donner un « rôle par défaut introuvable. » Erreur

StackOverflow https://stackoverflow.com/questions/2049789

Question

Peut-être mettre une autre façon, comment puis-je créer un rôle de sécurité par défaut pour les nouveaux utilisateurs enregistrés à l'aide Grails Teh plug-in ACEGI?

Je l'ai suivi le Acegi / Grails tutoriel ici et je suis en utilisant les annotations du contrôleur -. bien que je ne l'ai pas encore rien obtenu

J'ai ajouté un second rôle appelé WEB_USER et ont ajouté avec succès un utilisateur à ce rôle.

Quand j'utilise le contrôleur de registre cependant, je reçois vient un autre nouvel utilisateur, un message d'erreur de Grails disant "Default role not found".

Je pouvais voir comment je pourrais coder mon chemin à peu près de ce soit par la manipulation d'une liste de rôle nul dans la méthode de création appropriée, ou affichant même un nom de rôle par défaut en arrière comme un champ caché de la vue de l'enregistrement, mais ils se sentent un -Grails.

Je pense que je devrais être en mesure de définir ce soit dans la même ou en quelque sorte classe de domaine utilisateur dans la relation dans la base de données entre les tables utilisateur et rôle.

Qu'est-ce les moyens destinés à définir un rôle par défaut, et pourquoi je reçois ce message.

Oh, et comment prononcez-vous Acegi?

Était-ce utile?

La solution

Ceci est un problème de documentation. La page de registre ne vous permet pas de sélectionner des rôles car il est prévu que ce sera une page d'inscription publique. Au moins un rôle est nécessaire lors de la création d'un utilisateur il attend qu'il y ait un rôle « par défaut » configuré pour ce flux de travail.

Vous pouvez définir le rôle par défaut dans SecurityConfig.groovy avec l'attribut « DefaultRole ». Par défaut, il est « ROLE_USER », mais il peut être tout ce que vous voulez. Il doit y avoir une instance Autorité avec cette valeur avant que les utilisateurs peuvent enregistrer.

La prononciation est dans la FAQ - http://www.acegisecurity.org/faq.html

Autres conseils

J'ai trouvé la réponse. En règle générale de Grails, il y a un rôle par défaut appelé ROLE_USER. Lorsque vous enregistrez un nouvel utilisateur, il cherche un rôle avec ce nom et si elle trouve un, il affecte à l'utilisateur.

Le message « Rôle par défaut introuvable » est ambigu dans la façon dont il peut être lu.

Je d'abord pensé que cela signifiait « vous devez définir un rôle par défaut quelque part afin que les utilisateurs nouvellement inscrits sont affectés à ce ».

Cependant, je pense que cela signifie vraiment «vous devez créer la ligne de base de données dans votre table des rôles que l'on appelle ROLE_USER de telle sorte que la configuration normale fonctionne ».

Il me semble qu'une partie de la génération de Grails des fonctions de sécurité devrait juste ajouter un ROLE_ADMIN et ROLE_USER à la base de données d'amorçage en quelque sorte et ont fait avec la possibilité de l'erreur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top