Einrichten einer Beta-Registrierung mit Devise

8

Ich habe kürzlich das Devise-Authentifizierungssystem in eine Schienen-Test-App integriert. Die Test-App enthält einfach ein Projektmodell / Controller / View, das sich hinter der Authentifizierung befindet.

Ich füge jetzt ein Beta-Einladungssystem hinzu, sodass nur Nutzer, die eine Einladung von einem anderen Nutzer erhalten haben, der Website beitreten können. Ich implementierte dieses System durch folgendes: Ссылка .

Das einzige Problem, das ich habe, ist, dass die Beta-Einladung mich dazu zwingt, dem Benutzer-Controller etwas Logik hinzuzufügen, was mit Devise nicht möglich ist. Ich versuche einen neuen Registrierungs-Controller zu erstellen, indem ich Users :: RegistrationsController & lt; Devise :: RegistrationsController, das im Grunde genommen mit dem Devise-Controller identisch ist, aber mir erlaubt, zusätzliche Logik für das Beta-Einladungssystem hinzuzufügen.

Ich kann jedoch nicht, dass dieser neue Controller funktioniert (und ich habe auch Probleme, was ich in diesen neuen Controller aufnehmen sollte). Ich habe meiner Routes-Datei Folgendes hinzugefügt:

  

Ressourcen: Registrierungen

     

Ressourcen: Einladungen

     

Ressourcen: Projekte

     

devise_for: Benutzer

     

devise_scope: Benutzer macht
      get 'Benutzer / sign_up /: invitation_token' = & gt;   "Registrierungen # neu"
  Ende

Was stelle ich in diesen neuen Registrations-Controller, um die Funktionalität des Original-Controller für Geräte / Registrierungen nachzuahmen?

    
Alex 19.03.2011, 00:17
quelle

1 Antwort

10

Fügen Sie in Ihrem Benutzermodell eine Überprüfung hinzu, bei der Sie prüfen, ob die E-Mail-Adresse des Nutzers in einer Beta-Einladungsliste enthalten ist.

Diese SO ist sehr ähnlich: Whitelisting mit Devise ... Ich habe dort ähnlichen Code hinzugefügt, es ist relevant hier:

%Vor%     
Jesse Wolgamott 19.03.2011, 01:06
quelle