Move invalid input errors into common sub-template
This commit is contained in:
parent
0226eba60a
commit
4ad1a1d20e
8 changed files with 99 additions and 203 deletions
|
@ -190,7 +190,7 @@ sub delete {
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
$self->render( 'account', invalid => 'password' );
|
$self->render( 'account', invalid => 'deletion password' );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$self->flag_user_deletion( $self->current_user->{id} );
|
$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 );
|
my $uid = $self->get_uid_by_name_and_mail( $name, $email );
|
||||||
|
|
||||||
if ( not $uid ) {
|
if ( not $uid ) {
|
||||||
$self->render( 'recover_password', invalid => 'credentials' );
|
$self->render( 'recover_password',
|
||||||
|
invalid => 'recovery credentials' );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -360,7 +361,7 @@ sub request_password_reset {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if ( not $self->verify_password_token( $id, $token ) ) {
|
if ( not $self->verify_password_token( $id, $token ) ) {
|
||||||
$self->render( 'recover_password', invalid => 'token' );
|
$self->render( 'recover_password', invalid => 'recovery token' );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if ( $password ne $password2 ) {
|
if ( $password ne $password2 ) {
|
||||||
|
@ -428,7 +429,7 @@ sub recover_password {
|
||||||
$self->render('set_password');
|
$self->render('set_password');
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$self->render( 'recover_password', invalid => 'token' );
|
$self->render( 'recover_password', invalid => 'recovery token' );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
88
templates/_invalid_input.html.ep
Normal file
88
templates/_invalid_input.html.ep
Normal file
|
@ -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>
|
|
@ -1,28 +1,5 @@
|
||||||
% if (my $invalid = stash('invalid')) {
|
% if (my $invalid = stash('invalid')) {
|
||||||
<div class="row">
|
%= include '_invalid_input', invalid => $invalid
|
||||||
<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>
|
|
||||||
% }
|
% }
|
||||||
|
|
||||||
<h1>Account</h1>
|
<h1>Account</h1>
|
||||||
|
|
|
@ -1,35 +1,5 @@
|
||||||
% if (my $invalid = stash('invalid')) {
|
% if (my $invalid = stash('invalid')) {
|
||||||
<div class="row">
|
%= include '_invalid_input', invalid => $invalid
|
||||||
<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>
|
|
||||||
% }
|
% }
|
||||||
|
|
||||||
<h1>Passwort ändern</h1>
|
<h1>Passwort ändern</h1>
|
||||||
|
|
|
@ -21,33 +21,7 @@
|
||||||
</div>
|
</div>
|
||||||
% }
|
% }
|
||||||
% if (my $invalid = stash('invalid')) {
|
% if (my $invalid = stash('invalid')) {
|
||||||
<div class="row">
|
%= include '_invalid_input', invalid => $invalid
|
||||||
<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>
|
|
||||||
% }
|
% }
|
||||||
% if (my $from = stash('from')) {
|
% if (my $from = stash('from')) {
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|
|
@ -1,36 +1,6 @@
|
||||||
<h1>Passwort zurücksetzen</h1>
|
<h1>Passwort zurücksetzen</h1>
|
||||||
% if (my $invalid = stash('invalid')) {
|
% if (my $invalid = stash('invalid')) {
|
||||||
<div class="row">
|
%= include '_invalid_input', invalid => $invalid
|
||||||
<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>
|
|
||||||
% }
|
% }
|
||||||
% if (stash('success')) {
|
% if (stash('success')) {
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|
|
@ -1,63 +1,5 @@
|
||||||
% if (my $invalid = stash('invalid')) {
|
% if (my $invalid = stash('invalid')) {
|
||||||
<div class="row">
|
%= include '_invalid_input', invalid => $invalid
|
||||||
<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>
|
|
||||||
% }
|
% }
|
||||||
%= form_for '/register' => (method => 'POST') => begin
|
%= form_for '/register' => (method => 'POST') => begin
|
||||||
%= csrf_field
|
%= csrf_field
|
||||||
|
|
|
@ -1,31 +1,5 @@
|
||||||
% if (my $invalid = stash('invalid')) {
|
% if (my $invalid = stash('invalid')) {
|
||||||
<div class="row">
|
%= include '_invalid_input', invalid => $invalid
|
||||||
<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>
|
|
||||||
% }
|
% }
|
||||||
|
|
||||||
<h1>Neues Passwort eintragen</h1>
|
<h1>Neues Passwort eintragen</h1>
|
||||||
|
|
Loading…
Reference in a new issue