From 25d0530e860e2103fd28f556ac728c4f72fcd45a Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Mon, 29 Apr 2019 20:12:59 +0200 Subject: Add password reset functionality Closes #5 --- templates/login.html.ep | 11 ++++++ templates/recover_password.html.ep | 77 ++++++++++++++++++++++++++++++++++++++ templates/set_password.html.ep | 60 +++++++++++++++++++++++++++++ 3 files changed, 148 insertions(+) create mode 100644 templates/recover_password.html.ep create mode 100644 templates/set_password.html.ep (limited to 'templates') diff --git a/templates/login.html.ep b/templates/login.html.ep index 58ff0ed..283aa60 100644 --- a/templates/login.html.ep +++ b/templates/login.html.ep @@ -102,4 +102,15 @@
+
+
+
+ +
+
+
%= end diff --git a/templates/recover_password.html.ep b/templates/recover_password.html.ep new file mode 100644 index 0000000..4ebc41a --- /dev/null +++ b/templates/recover_password.html.ep @@ -0,0 +1,77 @@ +

Passwort zurücksetzen

+% if (my $invalid = stash('invalid')) { +
+
+
+
+ % if ($invalid eq 'csrf') { + Ungültiger CSRF-Token +

Sind Cookies aktiviert? Ansonsten könnte es sich um einen + Fall von CSRF + handeln.

+ % } + % elsif ($invalid eq 'credentials') { + Ungültige Daten +

Falscher Account oder falsches Mail-Adresse.

+ % } + % elsif ($invalid eq 'in progress') { + Passwort-Reset wird durchgeführt +

Es wurde bereits ein Reset-Link verschickt.

+ % } + % elsif ($invalid eq 'token') { + Ungültiger Token +

Der Reset-Token ist ungültig oder abgelaufen. Neuen beantragen?

+ % } + % else { + Unbekannter Fehler +

„<%= $invalid %>“

+ % } +
+
+
+
+% } +% if (stash('success')) { +
+
+
+
+ Passwort-Reset wird durchgeführt +

+ Ein für zwei Tage gültiger Reset-Link wurde an deine + Mail-Adresse verschickt. Sobald du damit ein neues Passwort + gesetzt hast, kannst du dich wieder anmelden. +

+
+
+
+
+% } +%= form_for '/recover' => (method => 'POST') => begin + %= csrf_field +
+
+ account_circle + %= text_field 'user', id => 'user', class => 'validate', required => undef, maxlength => 60, autocomplete => 'username' + +
+
+ email + %= email_field 'email', id => 'email', class => 'validate', required => undef, maxlength => 250 + +
+
+
+
+
+
+ +
+
+
+
+%= end diff --git a/templates/set_password.html.ep b/templates/set_password.html.ep new file mode 100644 index 0000000..571ee0b --- /dev/null +++ b/templates/set_password.html.ep @@ -0,0 +1,60 @@ +% if (my $invalid = stash('invalid')) { +
+
+
+
+ % if ($invalid eq 'csrf') { + Ungültiger CSRF-Token +

Sind Cookies aktiviert? Ansonsten könnte es sich um einen + Fall von CSRF + handeln.

+ % } + % elsif ($invalid eq 'password_notequal') { + Passwort ungültig +

Die angegebenen neuen Passwörter sind nicht identisch.

+ % } + % elsif ($invalid eq 'password_short') { + Passwort zu kurz +

Das neue Passwort muss mindestens acht Zeichen lang sein.

+ % } + % else { + Unbekannter Fehler +

„<%= $invalid %>“

+ % } +
+
+
+
+% } + +

Neues Passwort eintragen

+%= form_for '/recover' => (method => 'POST') => begin + %= csrf_field + %= hidden_field 'id' => param('id') + %= hidden_field 'token' => param('token') +
+
+ lock + %= password_field 'newpw', id => 'password', class => 'validate', required => undef, minlength => 8, autocomplete => 'new-password' + +
+
+ lock + %= password_field 'newpw2', id => 'password2', class => 'validate', required => undef, minlength => 8, autocomplete => 'new-password' + +
+
+
+
+
+
+ +
+
+
+
+%= end -- cgit v1.2.3