Entwickeln, der Benutzer muss die Nutzungsbedingungen akzeptieren?

8

Ich möchte festlegen, dass alle Benutzer die Nutzungsbedingungen akzeptieren, ähnlich wie hier beschrieben:

Ruby on Rails / Devise - Umgehen der benutzerdefinierten Validierungsoption im Modell beim Zurücksetzen des Passworts

Allerdings gibt es zwei Anforderungen, die den obigen Ansatz nicht erfüllen.

1) Benutzer sind nicht selbst registriert, sondern werden von einem Systemadministrator erstellt. Der Administrator kann die Nutzungsbedingungen im Namen des Benutzers offensichtlich nicht akzeptieren. Der Benutzer sollte aufgefordert werden, die Nutzungsbedingungen bei seiner ersten Anmeldung zu akzeptieren.

2) Wenn sich die Geschäftsbedingungen nachträglich ändern. Benutzer müssen die neuen Begriffe bei nachfolgenden Anmeldungen erneut akzeptieren.

Diese scheinen wie normale Standard-Workflows zu sein. Bietet die Software einen Weg, dies zu erreichen?

Wenn nicht, denke ich, dass diese Überprüfung in einem before_filter auf meinem Anwendungscontroller implementiert werden muss. (Fühlt sich schmutzig Mischen Authentifizierung mit der Anwendungslogik ...)

Muss ich darauf zurückgreifen oder kann jemand einen besseren Weg vorschlagen?

Danke

    
Chris 08.05.2012, 13:29
quelle

2 Antworten

2

Dies ist nicht etwas, das Entwickler handhaben würde und das sollte nicht damit umgehen, weil ein TOS nicht zur Authentifizierung gehört.

Was Sie tun könnten, ist etwas wie eine Zustandsmaschine zu implementieren, aber das könnte komplexer sein als das, was Sie brauchen.

Der einfache Weg wäre, ein boolesches Feld accepted_tos zu Ihrem Benutzermodell hinzuzufügen und dieses in ein before_filter zu binden, dann würden Sie das accepted_tos jedesmal auf false setzen, wenn das TOS aktualisiert wird.

    
Mike 24.05.2012 02:14
quelle
0

Könntest du theoretisch nicht einfach die Verwendung von JQuery in deiner App deaktivieren?

Deaktivieren Sie das Formular "Weiter" oder "Anmelden", bis sie ein Kästchen angeklickt haben oder drücken Sie eine Fortfahren-Taste, dann aktivieren Sie Ihre Login-Taste, sobald sie haben.

Wenn Sie diese Informationen speichern müssen, machen Sie einfach eine Spalte in Ihrer Datenbank für den Benutzer, der auch gepostet wird, wenn sie das Kästchen ankreuzen, oder drücken Sie die Fortfahren-Taste, oder Sie könnten sogar die Anzahl der Login-Zählungen verwenden zu wissen.

Wenn user.logs & gt; 0 dann hat der Benutzer die Bedingungen bereits akzeptiert.
Wenn user.logs == 0, muss der Benutzer die Bedingungen akzeptieren, bevor er sich anmeldet.

Ich denke, je nach Ihrer Frage scheint es, als würde alles in Devise-Sounds übermäßig komplex gebunden sein.

Hoffe, das hilft.

    
Ben 23.05.2012 21:04
quelle