% 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> % } <h1>Passwort ändern</h1> %= form_for '/change_password' => (method => 'POST') => begin %= csrf_field <div class="row"> <div class="input-field col s12"> <i class="material-icons prefix">lock</i> %= password_field 'oldpw', id => 'oldpassword', class => 'validate', required => undef, autocomplete => 'current-password' <label for="oldpassword">Aktuelles Passwort</label> </div> </div> <div class="row"> <div class="input-field col l6 m12 s12"> <i class="material-icons prefix">lock</i> %= password_field 'newpw', id => 'password', class => 'validate', required => undef, minlength => 8, autocomplete => 'new-password' <label for="password">Neues Passwort</label> </div> <div class="input-field col l6 m12 s12"> <i class="material-icons prefix">lock</i> %= password_field 'newpw2', id => 'password2', class => 'validate', required => undef, minlength => 8, autocomplete => 'new-password' <label for="password2">Passwort wiederholen</label> </div> </div> <div class="row"> <div class="col s3 m3 l3"> </div> <div class="col s6 m6 l6 center-align"> <button class="btn waves-effect waves-light" type="submit" name="action" value="login"> Ändern <i class="material-icons right">send</i> </button> </div> <div class="col s3 m3 l3"> </div> </div> %= end