Deaktivierung der Devise-Registrierung nur für die Produktionsumgebung
Ich bin die Lancierung einer beta-Website mit einer ausgewählten Gruppe von Benutzern. Ich möchten, deaktivieren Sie die Registrierung in der Produktionsumgebung, und nur für einen kurzen Zeitraum (d.h. ich will nicht auf nuke mit meiner Anmeldung insgesamt). Ich weiß, ich kann Sie einfach verstecken Sie den "anmelden" - link, aber ich vermute, dass die Hacker schlauer als ich noch können das RESTful Routen zu erreichen-Registrierungen. Was ist der beste Weg, um deaktivieren Sie die Registrierung, so meine test - /Entwicklungsumgebungen, die immer noch funktionieren, aber die Produktion ist betroffen? Vielen Dank für jegliche Hinweise.
Ich habe versucht zu zeigen benannten Bereiche in der Weise, dass "sign_up", geht auf "sign_in", aber es hat nicht funktioniert. Hier ist, was ich versucht habe:
devise_scope :user do
get "users/sign_in", :to => "devise/sessions#new", :as => :sign_in
get "users/sign_up", :to => "devise/sessions#new", :as => :sign_up
end
Im Idealfall sollten wir schicken den user auf eine "Seiten#registration_disabled" - Seite oder etwas wie das. Ich wollte nur, um etwas zu arbeiten, wie ich kann spielen, um mit.
BEARBEITEN:
Ich habe das Modell verändert werden, wie angefordert, dann die folgende zu /spec/user_spec.rb
describe "validations" do
it "should fail registration if in production mode" do
ENV['RAILS_ENV'] = "production"
@user = Factory(:user).should_not be_valid
end
end
es ist vorbei "true" anstatt " false. Gibt es eine Möglichkeit, mock-up der Produktionsumgebung? Ich bin nur spit-balling, dieser.
Dank!
InformationsquelleAutor der Frage panzhuli | 2011-03-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da andere das problem das ich habe (siehe meine Kommentare). Hier ist genau, wie ich es behoben. Ich verwendet murphyslaw Idee. Aber Sie müssen auch sicherstellen, dass entwickeln, nutzt Ihren neuen controller für die Registrierung-routing, oder es wird nicht viel zu tun für Sie.
Hier ist mein controller überschreiben:
Habe ich Hinzugefügt, flash-Mitteilungen zu informieren, die jeder, der irgendwie stolpert auf der Registrierungs-Seite, warum es nicht funktioniert.
Hier ist, was ist in meinem
routes.rb
Den Controller hash gibt, dass ich es will, um meine Registrierungen überschrieben controller.
Anyways, ich hoffe, das spart jemand einige Zeit.
InformationsquelleAutor der Antwort Chris Nicola
Bearbeiten Sie die
user
Modell und entfernen:registerable
ich denke, dass sollte Ihnen, was Sie wollen.Edit:
Ich denke, dass dies funktionieren würde:
InformationsquelleAutor der Antwort Fareesh Vijayarangam
Nur entfernen
:registerable
wird das problem nicht lösen. Wenn Sie haben einige Routen in Ihren anzeigen, erhalten Sie eine Fehlermeldung:undefined local variable or method 'edit_user_registration_path'
Kümmern.
InformationsquelleAutor der Antwort Mindbreaker
könnte man überschreiben Entwickeln::RegistrationsController und die create-Aktion zur Weiterleitung auf die Seite, die Sie wollen. Der Controller sollte wahrscheinlich so Aussehen:
InformationsquelleAutor der Antwort murphyslaw