2011-03-01 2 views
31

J'ai fait l'authentification dans mes 3 Rails app par mise en jachère Tony's tutorialComment créer le premier utilisateur (Admin) (CanCan and Devise)?

Je ne veux pas les inscriptions publiques sur mon application, il suffit de créer de nouveaux utilisateurs avec compte Admin, mais je ne peux pas créer manuellement compte administrateur, parce que dans le tableau Les utilisateurs y sont cryptés mot de passe et le sel qui doit être généré, et je ne sais pas comment: |

+3

Qu'est-ce que cette question a à voir avec CanCan? –

+0

@Mark S ... Je ne sais pas.? –

Répondre

39

Vous pouvez le faire depuis la console rails. A partir de la ligne de commande, allez dans le répertoire de votre application rails et tapez rails console. Ensuite, entrez le code suivant pour créer un utilisateur:

user=User.create!(:email=>'[email protected]',:username=>'test',:password=>'password') 

Cela va créer un objet utilisateur (en supposant que votre ressource DEVISE est appelée User). Vous pouvez maintenant utiliser l'objet utilisateur que vous venez de créer pour définir les privilèges d'administrateur.

+0

Je reçois erreur de modèle dans le navigateur lorsque je veux accéder aux utilisateurs/nouvelle méthode non définie 'modèle', et de la console lorsque j'essaie de créer un nouvel utilisateur je reçois ActionView :: Template :: Error: ActionView :: Template :: Erreur et beaucoup de références de fichiers (ce n'est pas agréable à copier dans le commentaire :)) – dormitkon

+0

Ceci est la partie de mon application (code): http://anticdesign.info/work/ror/ – dormitkon

+0

Où est votre modèle de capacité? - https://github.com/ryanb/cancan/wiki/defining-abilities –

20

Je suis quelque chose comme ceci (vos détails peuvent être différents) dans mon fichier seeds.rb pour créer mon utilisateur admin pour Devise.

User.new({ :email => '[email protected]', :password => 'password', :password_confirmation => 'password'}).save 

Vous pouvez l'exécuter en utilisant rake db:seed dans la fenêtre du terminal.

15

En outre, si vous utilisez confirmable et que vous voulez ignorer l'exigence d'un e-mail de confirmation lors de la création de nouveaux comptes que vous pouvez faire quelque chose comme ceci:

newuser = User.new({ :email => '[email protected]', 
      :password => 'password', 
      :password_confirmation => 'password'}) 
newuser.skip_confirmation! 
newuser.save 

Ceci est utile si les comptes que vous créez sont pour les utilisateurs de confiance ou si vous créez des comptes de test.

Questions connexes