% if (my $user = current_user()) { <div class="row"> <div class="col s12"> <div class="card grey darken-4"> <div class="card-content white-text"> <span class="card-title">Hallo, <%= $user->{name} %>!</span> <p> Du bist bereits angemeldet. Falls du mehrere Accounts hast und auf einen anderen wechseln möchtest, musst du dich vorher %= form_for 'logout' => begin %= csrf_field <button class="btn waves-effect waves-light" type="submit" name="action" value="logout"> Abmelden </button> %= end </p> </div> </div> </div> </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> % } % if (my $from = stash('from')) { <div class="row"> <div class="col s12"> % if ($from eq 'register') { <div class="card grey darken-4"> <div class="card-content white-text"> <span class="card-title">Bitte warten</span> <p>Ein Verifizierungslink wurde an die von dir angegebene Mail-Adresse geschickt. Sobald du diesen angeklickt hast, kannst du dich hier anmelden.</p> </div> </div> % } % elsif ($from eq 'verification') { <div class="card green darken-4"> <div class="card-content white-text"> <span class="card-title">Account freigeschaltet</span> <p>Du kannst dich nun anmelden.</p> </div> </div> % } </div> </div> % } <div class="row"> %= form_for '/login' => (class => 'col s12', method => 'POST') => begin %= csrf_field % if (stash('redirect_to')) { %= hidden_field 'redirect_to' => stash('redirect_to') % } <div class="row"> <div class="input-field col s12"> <i class="material-icons prefix">account_circle</i> %= text_field 'user', id => 'user', class => 'validate', required => undef, maxlength => 60, autocomplete => 'username' <label for="user">Account</label> </div> <div class="input-field col s12"> <i class="material-icons prefix">lock</i> %= password_field 'password', id => 'password', class => 'validate', required => undef, autocomplete => 'current-password' <label for="password">Passwort</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"> Anmelden <i class="material-icons right">send</i> </button> </div> <div class="col s3 m3 l3"> </div> </div> %= end </div>