summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2019-04-30 10:46:46 +0200
committerDaniel Friesel <derf@finalrewind.org>2019-04-30 10:46:46 +0200
commit4ad1a1d20e52f7aa4b1ae2b7cc84c83c584d6725 (patch)
tree6789585c98a334938219d0c9aae0c7f947393e65
parent0226eba60ac14809f357240636a6a7151ef1ab1d (diff)
Move invalid input errors into common sub-template
-rw-r--r--lib/Travelynx/Controller/Account.pm9
-rw-r--r--templates/_invalid_input.html.ep88
-rw-r--r--templates/account.html.ep25
-rw-r--r--templates/change_password.html.ep32
-rw-r--r--templates/login.html.ep28
-rw-r--r--templates/recover_password.html.ep32
-rw-r--r--templates/register.html.ep60
-rw-r--r--templates/set_password.html.ep28
8 files changed, 99 insertions, 203 deletions
diff --git a/lib/Travelynx/Controller/Account.pm b/lib/Travelynx/Controller/Account.pm
index 5f06f2d..259fb9e 100644
--- a/lib/Travelynx/Controller/Account.pm
+++ b/lib/Travelynx/Controller/Account.pm
@@ -190,7 +190,7 @@ sub delete {
)
)
{
- $self->render( 'account', invalid => 'password' );
+ $self->render( 'account', invalid => 'deletion password' );
return;
}
$self->flag_user_deletion( $self->current_user->{id} );
@@ -293,7 +293,8 @@ sub request_password_reset {
my $uid = $self->get_uid_by_name_and_mail( $name, $email );
if ( not $uid ) {
- $self->render( 'recover_password', invalid => 'credentials' );
+ $self->render( 'recover_password',
+ invalid => 'recovery credentials' );
return;
}
@@ -360,7 +361,7 @@ sub request_password_reset {
return;
}
if ( not $self->verify_password_token( $id, $token ) ) {
- $self->render( 'recover_password', invalid => 'token' );
+ $self->render( 'recover_password', invalid => 'recovery token' );
return;
}
if ( $password ne $password2 ) {
@@ -428,7 +429,7 @@ sub recover_password {
$self->render('set_password');
}
else {
- $self->render( 'recover_password', invalid => 'token' );
+ $self->render( 'recover_password', invalid => 'recovery token' );
}
}
diff --git a/templates/_invalid_input.html.ep b/templates/_invalid_input.html.ep
new file mode 100644
index 0000000..d79ad03
--- /dev/null
+++ b/templates/_invalid_input.html.ep
@@ -0,0 +1,88 @@
+<div class="row">
+ <div class="col s12">
+ <div class="card red darken-4">
+ <div class="card-content white-text">
+ % if ($invalid eq 'csrf') {
+ <span class="card-title">Ungültiger CSRF-Token</span>
+ <p>Sind Cookies aktiviert? Ansonsten könnte es sich um einen
+ Fall von <a
+ href="https://de.wikipedia.org/wiki/Cross-Site-Request-Forgery">CSRF</a>
+ handeln.</p>
+ % }
+ % elsif ($invalid eq 'credentials') {
+ <span class="card-title">Ungültige Logindaten</span>
+ <p>Falscher Account oder falsches Passwort.</p>
+ % }
+ % elsif ($invalid eq 'recovery credentials') {
+ <span class="card-title">Ungültige Daten</span>
+ <p>Falscher Account oder falsches Mail-Adresse.</p>
+ % }
+ % elsif ($invalid eq 'user_empty') {
+ <span class="card-title">Leerer Nutzername</span>
+ <p>Bitte gib einen Nutzernamen an.</p>
+ % }
+ % elsif ($invalid eq 'mail_empty') {
+ <span class="card-title">Leere Mail-Adresse</span>
+ <p>Bitte gib eine E-Mail-Adresse an.</p>
+ % }
+ % elsif ($invalid eq 'user_format') {
+ <span class="card-title">Ungültiger Nutzername</span>
+ <p>Für den Nutzernamen erlaubte Zeichen sind
+ 0-9, a-z, A-Z sowie Unterstrich (_) und Bindestrich (-).</p>
+ % }
+ % elsif ($invalid eq 'user_collision') {
+ <span class="card-title">Name bereits vergeben</span>
+ <p>Es gibt bereits einen Account unter diesem Namen.</p>
+ % }
+ % elsif ($invalid eq 'mail_blacklisted') {
+ <span class="card-title">Mailadresse nicht nutzbar</span>
+ <p>Mit der angegebenen E-Mail-Adresse können derzeit keine
+ travelynx-Accounts registriert werden.</p>
+ % }
+ % elsif ($invalid eq 'sendmail') {
+ <span class="card-title">Mailversand fehlgeschlagen</span>
+ <p>Der Account wurde nicht angelegt, da die Bestätigungsmail
+ nicht verschickt werden konnte.
+ Überprüfe bitte, ob die Adresse gültig ist.</p>
+ % }
+ % elsif ($invalid eq 'token') {
+ <span class="card-title">Ungültiger Token</span>
+ <p>Die Verifikation deiner Mail-Adresse ist fehlgeschlagen oder du hast den Token schon einmal verwendet.</p>
+ % }
+ % elsif ($invalid eq 'confirmation') {
+ <span class="card-title">Account nicht freigeschaltet</span>
+ <p>Bitte besuche zuerst den per Mail verschickten Bestätigungslink.</p>
+ % }
+ % elsif ($invalid eq 'password') {
+ <span class="card-title">Ungültiges Passwort</span>
+ <p>Das aktuelle Passwort wurde nicht korrekt eingegeben.</p>
+ % }
+ % elsif ($invalid eq 'password_notequal') {
+ <span class="card-title">Passwort ungültig</span>
+ <p>Die angegebenen Passwörter sind nicht identisch.</p>
+ % }
+ % elsif ($invalid eq 'password_short') {
+ <span class="card-title">Passwort zu kurz</span>
+ <p>Das Passwort muss mindestens acht Zeichen lang sein.</p>
+ % }
+ % elsif ($invalid eq 'in progress') {
+ <span class="card-title">Passwort-Reset wird durchgeführt</span>
+ <p>Es wurde bereits ein Reset-Link verschickt.</p>
+ % }
+ % elsif ($invalid eq 'recovery token') {
+ <span class="card-title">Ungültiger Token</span>
+ <p>Der Reset-Token ist ungültig oder abgelaufen. Neuen beantragen?</p>
+ % }
+ % elsif ($invalid eq 'deletion password') {
+ <span class="card-title">Ungültiges Passwort</span>
+ <p>Aus Sicherheitsgründen kann der Account nur nach Passworteingabe
+ gelöscht werden.</p>
+ % }
+ % else {
+ <span class="card-title">Fehler</span>
+ <p><%= $invalid %></p>
+ % }
+ </div>
+ </div>
+ </div>
+</div>
diff --git a/templates/account.html.ep b/templates/account.html.ep
index 90c64fc..ca43340 100644
--- a/templates/account.html.ep
+++ b/templates/account.html.ep
@@ -1,28 +1,5 @@
% if (my $invalid = stash('invalid')) {
- <div class="row">
- <div class="col s12">
- <div class="card red darken-4">
- <div class="card-content white-text">
- % if ($invalid eq 'csrf') {
- <span class="card-title">Ungültiger CSRF-Token</span>
- <p>Sind Cookies aktiviert? Ansonsten könnte es sich um einen
- Fall von <a
- href="https://de.wikipedia.org/wiki/Cross-Site-Request-Forgery">CSRF</a>
- handeln.</p>
- % }
- % elsif ($invalid eq 'password') {
- <span class="card-title">Ungültiges Passwort</span>
- <p>Aus Sicherheitsgründen kann der Account nur nach Passworteingabe
- gelöscht werden.</p>
- % }
- % else {
- <span class="card-title">Unbekannter Fehler</span>
- <p>„<%= $invalid %>“</p>
- % }
- </div>
- </div>
- </div>
- </div>
+ %= include '_invalid_input', invalid => $invalid
% }
<h1>Account</h1>
diff --git a/templates/change_password.html.ep b/templates/change_password.html.ep
index bae28d9..fa03e28 100644
--- a/templates/change_password.html.ep
+++ b/templates/change_password.html.ep
@@ -1,35 +1,5 @@
% if (my $invalid = stash('invalid')) {
- <div class="row">
- <div class="col s12">
- <div class="card red darken-4">
- <div class="card-content white-text">
- % if ($invalid eq 'csrf') {
- <span class="card-title">Ungültiger CSRF-Token</span>
- <p>Sind Cookies aktiviert? Ansonsten könnte es sich um einen
- Fall von <a
- href="https://de.wikipedia.org/wiki/Cross-Site-Request-Forgery">CSRF</a>
- handeln.</p>
- % }
- % elsif ($invalid eq 'password_notequal') {
- <span class="card-title">Passwort ungültig</span>
- <p>Die angegebenen neuen Passwörter sind nicht identisch.</p>
- % }
- % elsif ($invalid eq 'password_short') {
- <span class="card-title">Passwort zu kurz</span>
- <p>Das neue Passwort muss mindestens acht Zeichen lang sein.</p>
- % }
- % elsif ($invalid eq 'password') {
- <span class="card-title">Ungültiges Passwort</span>
- <p>Das aktuelle Passwort wurde nicht korrekt eingegeben.</p>
- % }
- % else {
- <span class="card-title">Unbekannter Fehler</span>
- <p>„<%= $invalid %>“</p>
- % }
- </div>
- </div>
- </div>
- </div>
+ %= include '_invalid_input', invalid => $invalid
% }
<h1>Passwort ändern</h1>
diff --git a/templates/login.html.ep b/templates/login.html.ep
index 283aa60..08146c8 100644
--- a/templates/login.html.ep
+++ b/templates/login.html.ep
@@ -21,33 +21,7 @@
</div>
% }
% if (my $invalid = stash('invalid')) {
- <div class="row">
- <div class="col s12">
- <div class="card red darken-4">
- <div class="card-content white-text">
- % if ($invalid eq 'csrf') {
- <span class="card-title">Ungültiger CSRF-Token</span>
- <p>Sind Cookies aktiviert? Ansonsten könnte es sich um einen
- Fall von <a
- href="https://de.wikipedia.org/wiki/Cross-Site-Request-Forgery">CSRF</a>
- handeln.</p>
- % }
- % elsif ($invalid eq 'credentials') {
- <span class="card-title">Ungültige Logindaten</span>
- <p>Falscher Account oder falsches Passwort.</p>
- % }
- % elsif ($invalid eq 'confirmation') {
- <span class="card-title">Account nicht freigeschaltet</span>
- <p>Bitte besuche zuerst den per Mail verschickten Bestätigungslink.</p>
- % }
- % else {
- <span class="card-title">Unbekannter Fehler</span>
- <p>„<%= $invalid %>“</p>
- % }
- </div>
- </div>
- </div>
- </div>
+ %= include '_invalid_input', invalid => $invalid
% }
% if (my $from = stash('from')) {
<div class="row">
diff --git a/templates/recover_password.html.ep b/templates/recover_password.html.ep
index 4ebc41a..a3332c3 100644
--- a/templates/recover_password.html.ep
+++ b/templates/recover_password.html.ep
@@ -1,36 +1,6 @@
<h1>Passwort zurücksetzen</h1>
% if (my $invalid = stash('invalid')) {
- <div class="row">
- <div class="col s12">
- <div class="card red darken-4">
- <div class="card-content white-text">
- % if ($invalid eq 'csrf') {
- <span class="card-title">Ungültiger CSRF-Token</span>
- <p>Sind Cookies aktiviert? Ansonsten könnte es sich um einen
- Fall von <a
- href="https://de.wikipedia.org/wiki/Cross-Site-Request-Forgery">CSRF</a>
- handeln.</p>
- % }
- % elsif ($invalid eq 'credentials') {
- <span class="card-title">Ungültige Daten</span>
- <p>Falscher Account oder falsches Mail-Adresse.</p>
- % }
- % elsif ($invalid eq 'in progress') {
- <span class="card-title">Passwort-Reset wird durchgeführt</span>
- <p>Es wurde bereits ein Reset-Link verschickt.</p>
- % }
- % elsif ($invalid eq 'token') {
- <span class="card-title">Ungültiger Token</span>
- <p>Der Reset-Token ist ungültig oder abgelaufen. Neuen beantragen?</p>
- % }
- % else {
- <span class="card-title">Unbekannter Fehler</span>
- <p>„<%= $invalid %>“</p>
- % }
- </div>
- </div>
- </div>
- </div>
+ %= include '_invalid_input', invalid => $invalid
% }
% if (stash('success')) {
<div class="row">
diff --git a/templates/register.html.ep b/templates/register.html.ep
index 06ecce4..599f2b3 100644
--- a/templates/register.html.ep
+++ b/templates/register.html.ep
@@ -1,63 +1,5 @@
% if (my $invalid = stash('invalid')) {
- <div class="row">
- <div class="col s12">
- <div class="card red darken-4">
- <div class="card-content white-text">
- % if ($invalid eq 'csrf') {
- <span class="card-title">Ungültiger CSRF-Token</span>
- <p>Sind Cookies aktiviert? Ansonsten könnte es sich um einen
- Fall von <a
- href="https://de.wikipedia.org/wiki/Cross-Site-Request-Forgery">CSRF</a>
- handeln.</p>
- % }
- % elsif ($invalid eq 'user_empty') {
- <span class="card-title">Leerer Nutzername</span>
- <p>Bitte gib einen Nutzernamen an.</p>
- % }
- % elsif ($invalid eq 'mail_empty') {
- <span class="card-title">Leere Mail-Adresse</span>
- <p>Bitte gib eine E-Mail-Adresse an.</p>
- % }
- % elsif ($invalid eq 'user_format') {
- <span class="card-title">Ungültiger Nutzername</span>
- <p>Für den Nutzernamen erlaubte Zeichen sind
- 0-9, a-z, A-Z sowie Unterstrich (_) und Bindestrich (-).</p>
- % }
- % elsif ($invalid eq 'user_collision') {
- <span class="card-title">Name bereits vergeben</span>
- <p>Es gibt bereits einen Account unter diesem Namen.</p>
- % }
- % elsif ($invalid eq 'password_notequal') {
- <span class="card-title">Passwort ungültig</span>
- <p>Die angegebenen Passwörter sind nicht identisch.</p>
- % }
- % elsif ($invalid eq 'password_short') {
- <span class="card-title">Passwort zu kurz</span>
- <p>Das Passwort muss mindestens acht Zeichen lang sein.</p>
- % }
- % elsif ($invalid eq 'mail_blacklisted') {
- <span class="card-title">Mailadresse nicht nutzbar</span>
- <p>Mit der angegebenen E-Mail-Adresse können derzeit keine
- travelynx-Accounts registriert werden.</p>
- % }
- % elsif ($invalid eq 'sendmail') {
- <span class="card-title">Mailversand fehlgeschlagen</span>
- <p>Der Account wurde nicht angelegt, da die Bestätigungsmail
- nicht verschickt werden konnte.
- Überprüfe bitte, ob die Adresse gültig ist.</p>
- % }
- % elsif ($invalid eq 'token') {
- <span class="card-title">Ungültiger Token</span>
- <p>Die Verifikation deiner Mail-Adresse ist fehlgeschlagen oder du hast den Token schon einmal verwendet.</p>
- % }
- % else {
- <span class="card-title">Unbekannter Fehler</span>
- <p>„<%= $invalid %>“</p>
- % }
- </div>
- </div>
- </div>
- </div>
+ %= include '_invalid_input', invalid => $invalid
% }
%= form_for '/register' => (method => 'POST') => begin
%= csrf_field
diff --git a/templates/set_password.html.ep b/templates/set_password.html.ep
index 571ee0b..49eea9d 100644
--- a/templates/set_password.html.ep
+++ b/templates/set_password.html.ep
@@ -1,31 +1,5 @@
% if (my $invalid = stash('invalid')) {
- <div class="row">
- <div class="col s12">
- <div class="card red darken-4">
- <div class="card-content white-text">
- % if ($invalid eq 'csrf') {
- <span class="card-title">Ungültiger CSRF-Token</span>
- <p>Sind Cookies aktiviert? Ansonsten könnte es sich um einen
- Fall von <a
- href="https://de.wikipedia.org/wiki/Cross-Site-Request-Forgery">CSRF</a>
- handeln.</p>
- % }
- % elsif ($invalid eq 'password_notequal') {
- <span class="card-title">Passwort ungültig</span>
- <p>Die angegebenen neuen Passwörter sind nicht identisch.</p>
- % }
- % elsif ($invalid eq 'password_short') {
- <span class="card-title">Passwort zu kurz</span>
- <p>Das neue Passwort muss mindestens acht Zeichen lang sein.</p>
- % }
- % else {
- <span class="card-title">Unbekannter Fehler</span>
- <p>„<%= $invalid %>“</p>
- % }
- </div>
- </div>
- </div>
- </div>
+ %= include '_invalid_input', invalid => $invalid
% }
<h1>Neues Passwort eintragen</h1>