future_kids
future_kids copied to clipboard
Als Benutzer*in muss ich die Nutzungsbedingungen akzeptieren
Beschreibung
Bei geänderten Nutzungsbedingungen werden Benutzer*innen aufgefordert, diese zu akzeptieren. Ohne Akzeptanz ist die Nutzung der Platform nicht möglich.
Akzeptanzkriterien
- [ ] Geänderter Nutzungsbedingungen werden nach dem Login angezeigt: Die Seite zeigt den Titel "Bitte akzeptieren sie die geändertern Nutzungsbedingungen, die Nutzungsbedingungen selbst und einen Button "Nutzungsbedingungen Akzeptieren"
- [ ] Administrator*innen müssen geänderte Nutzungsbedingungen akzeptieren
- [ ] Mentor*innen müssen geänderte Nutzungsbedingungen akzeptieren
- [ ] Schulleiter*innen müssen geänderte Nutzungsbedingungen akzeptieren
- [ ] Lehrpersonen müssen geänderte Nutzungsbedingungen akzeptieren
- [ ] Nach der Aktzeptanz der Nutzungsbedingungen werden Benutzer*innen auf die ursprünglich an-navigierte Seite weitergeleitet
- [ ] Werden die Nutzungsbedingungen erneut geändert, müssen diese erneut angezeigt und akzeptiert werden
Technische Details
Die Nutzungsbedingungen können von Admins bearbeitet werden unter /site/edit
Wenn das Feature "öffentliche Registrierung" aktiviert ist, werden diese bereits abgefragt und angezeigt. Hier ein Beispiel:
- https://future-kids-selfservice-dev.herokuapp.com/self_registrations/new?type=mentor
- https://future-kids-selfservice-dev.herokuapp.com/self_registrations/terms_of_use
Für Versionen der Applikation ohne "öffentliche Registrierung" haben die Nutzungsbedingunen bisher noch keine Relevanz. Ziel dieses Tickets ist es dies auch für diese Versionen zu verlangen.
Das Feld zur Akzeptanz der Nutzungsbedingungen ist ein Boolean terms_of_use_accepted
Alle Benutzertypen erben die Funktionen des User
Models.
Tips für die Implementierung
Dies sind Vorschläge, die Umsetzung kann gerne auch anders gelöst werden.
Auf dem site model soll aufgezeichnet, wann die Nutzungsbedingungen das letzte mal geändert wurden. Dies kann z.B. über den "Dirty" state des Feldes gemacht werden: https://api.rubyonrails.org/classes/ActiveRecord/AttributeMethods/Dirty.html
Auf dem User Model muss ebenfalls aufgezeichnet werden, wann Benutzer*innen das letzte Mal die Nutzungsbedingungen akzeptiert haben.
Nach dem Login kann mit einer Devise Methode oder einem Filter überprüft werden, ob die aktuellen Nutzungsbedingungen akzeptiert wurden.
Die aktuelle Anzeige der Nutzungsbedingungen ( /self_registrations/terms_of_use
) ist vom Layout her noch nicht geeignet. Für diese neue Funktion lohnt es sich auf einem anderen Controller neue Aktionen zur Anzeige und zur Akzeptanz der Nutzungsbedingungen zu implementieren.
Für das Testing empfiehlt sich ein Integrationstest. Im vorliegenden Projekt sind diese mit Capybara / Rspec geschrieben. Ein geeigneter Test zum erweitern oder kopieren könnte 'SESSION::LOGIN' sein: https://github.com/panterch/future_kids/blob/master/spec/requests/login_stories_spec.rb
Bitte das Repository https://github.com/panterch/future_kids/ forken und das Feature zum Review als Github Pull Request schicken.
Weitere Infos zum Installieren des Projektes https://github.com/panterch/future_kids/blob/master/INSTALL.md