future_kids icon indicating copy to clipboard operation
future_kids copied to clipboard

Als Benutzer*in muss ich die Nutzungsbedingungen akzeptieren

Open panterch opened this issue 3 years ago • 0 comments

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

panterch avatar Aug 02 '21 12:08 panterch