2010-10-07 11 views
12

Ich habe Devise in einer Rails 3-Anwendung implementiert und ich brauche Admin-Benutzer, um Benutzer verwalten zu können. Benutzer sind nicht registrierbar und daher muss ein Administrator Konten erstellen. Was wäre der beste Weg, dies zu tun?Verwalten von Benutzerkonten mit Rails 3 und Devise

Es scheint nicht sehr trocken, meine eigene UsersController zu erstellen, wenn Devise bereits Devise::RegistrationController bietet, aber ich sehe keine anderen Optionen.

Antwort

13

entschied ich mich auf meine eigene UsersController an der Seite erstellen die RegistrationController. Es macht wirklich Sinn, meinen eigenen RESTful Controller für Admin-Zwecke zu haben. Es ist nicht Aufgabe des Benutzers, Benutzerdatensätze zu verwalten und administrative Felder zu verwalten. Es ist schließlich ein Authentifizierungsrahmen. Es scheint nur richtig zu sein, es zu tun, wozu es bestimmt ist. Sie müssen aus einem bestimmten Grund ein eigenes Benutzermodell erstellen.

2

Sie können den RegistrationController überschreiben, um die von Ihnen benötigte Funktionalität bereitzustellen. Schauen Sie sich die erste Antwort von hier: Override devise registrations controller

+0

Haben Sie dies nicht getestet, aber Sie könnten den RegistrationController außer Kraft setzen und einfach einen before_filter in ihn einfügen, der sicherstellt, dass ein Administrator die Anfrage stellt. – pushmatrix

+0

Ich habe eigentlich meinen eigenen Registrierungs-Controller zur Autorisierung. Mein Problem ist, dass wenn Sie sign_up als einen anderen Benutzer aufrufen, Sie sofort als dieser Benutzer angemeldet sind (wie es eine Benutzerregistrierung ist). Wenn ich sowieso alle meine eigenen Methoden erstelle, denke ich, dass ich lieber meinen eigenen UsersController habe –

Verwandte Themen