2016-04-20 11 views
0

Auf meiner Website werde ich alle Mitgliedschaften mit Devise bearbeiten. Ich habe eine seltsame Situation, in der ich nur Benutzer mit einer bestimmten Erlaubnis in der Lage sein möchte, andere Benutzer (erstellen Sie ein Profil für den neuen Benutzer), aber wenn ich versuche, auf \users\sign_up zuzugreifen, wenn ich bereits angemeldet bin, werde ich an root weitergeleitet .Rails 4 + Devise: Nur Mitarbeiter können neue Benutzer anlegen

Soll ich den Benutzer (Kunden) anders behandeln als den Benutzer (Mitarbeiter)? Ich denke, das ist der einfachste Weg, aber vielleicht gibt es einen besseren Weg.

+0

Scheint ähnlich, was diese Frage fragt. Sie können möglicherweise einige davon verwenden: http://stackoverflow.com/questions/12541224/rails-devise-prevent-login-immediately-after-signup-without-using-confirmable – plainjimbo

+0

Es wäre hilfreich, aber es ist veraltet . Der Devise-Controller sieht nicht mehr so ​​aus. –

Antwort

0

Erstellen Sie Ihren eigenen Controller, um das zu tun. In diesem Controller werden alle Rollen und Zugriffe überprüft. Einmal zufrieden erstellt neue Benutzer mit:

@user = User.new(:email => '[email protected]', :password => 'password', :password_confirmation => 'password') 
@user.save 
+0

Ihre Antwort ist ein bisschen vage. Ich bin mir nicht sicher, was du mit "das" meinst. Um neue Benutzer zu erstellen? Ich habe mir gedacht, dass es eine einfachere Möglichkeit gibt, den Registrierungs-Controller von Deivise zu überschreiben. –

+0

Mit "das" meine ich die Verwaltung von Benutzern (CRUD). Deaktivieren Sie die Benutzerregistrierung und erstellen Sie einen eigenen Controller, der die Benutzer verwaltet. Dieser Controller ist für Benutzer mit einer bestimmten Rolle zugänglich. Alternativ dazu können Sie einfach 'basic auth' zu 'users/sign_up' uri hinzufügen und den Mitarbeitern Benutzernamen/Passwort-Details geben. Sie können auf die Registrierungsseite zugreifen und Benutzerdetails in das Formular eingeben. Das ist ein einfacher Workaround. – Uzbekjon

+0

Ich habe eine Admin-Berechtigung hinzugefügt, und 'skip_before_filter: require_no_authentication, nur: [: new,: create]' zu meinem Registrierungs-Controller und es scheint den Trick getan zu haben –

Verwandte Themen