Loading index.pl +32 −0 Original line number Diff line number Diff line #!/usr/bin/env perl use Mojolicious::Lite; use Mojolicious::Plugin::Authentication; use Cache::File; use DateTime; use DBI; Loading Loading @@ -33,6 +34,27 @@ my %action_type = ( undo => 3, ); app->plugin(authentication => { autoload_user => 1, session_key => 'foodor', load_user => sub { my ($app, $uid) = @_; if ($uid == 1) { return { name => 'derf', }; } return undef; }, validate_user => sub { my ($c, $username, $password, $extradata) = @_; if ($username eq 'derf' and $password eq 'hallo') { return 1; } return undef; }, }); app->defaults( layout => 'default' ); app->attr( Loading Loading @@ -772,6 +794,16 @@ post '/x/geolocation' => sub { }; get '/x/login' => sub { my ($self) = @_; $self->render('login'); }; get '/x/register' => sub { my ($self) = @_; $self->render('register'); }; get '/*station' => sub { my ($self) = @_; my $station = $self->stash('station'); Loading templates/login.html.ep 0 → 100644 +18 −0 Original line number Diff line number Diff line <div class="row"> <form class="col s12"> <div class="row"> <div class="input-field col s12"> <i class="material-icons prefix">account_circle</i> <input id="user" type="text" class="validate"> <label for="user">User</label> </div> </div> <div class="row"> <div class="input-field col s12"> <i class="material-icons prefix">lock</i> <input id="password" type="password" class="validate"> <label for="password">Password</label> </div> </div> </form> </div> templates/register.html.ep 0 → 100644 +38 −0 Original line number Diff line number Diff line <div class="row"> %= form_for '/x/register' => (class => 'col s12', method => 'POST') => begin <div class="row"> <div class="input-field col l6 m12 s12"> <i class="material-icons prefix">account_circle</i> <input id="account" type="text" class="validate"> <label for="account">Name</label> </div> <div class="input-field col l6 m12 s12"> <i class="material-icons prefix">email</i> <input id="email" type="email" class="validate"> <label for="email">Mail-Adresse</label> </div> <div class="input-field col l6 m12 s12"> <i class="material-icons prefix">lock</i> <input id="password" type="password" class="validate"> <label for="password">Passwort</label> </div> <div class="input-field col l6 m12 s12"> <i class="material-icons prefix">lock</i> <input id="password2" type="password" class="validate"> <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="register"> Registrieren <i class="material-icons right">send</i> </button> </div> <div class="col s3 m3 l3"> </div> </div> %= end </div> Loading
index.pl +32 −0 Original line number Diff line number Diff line #!/usr/bin/env perl use Mojolicious::Lite; use Mojolicious::Plugin::Authentication; use Cache::File; use DateTime; use DBI; Loading Loading @@ -33,6 +34,27 @@ my %action_type = ( undo => 3, ); app->plugin(authentication => { autoload_user => 1, session_key => 'foodor', load_user => sub { my ($app, $uid) = @_; if ($uid == 1) { return { name => 'derf', }; } return undef; }, validate_user => sub { my ($c, $username, $password, $extradata) = @_; if ($username eq 'derf' and $password eq 'hallo') { return 1; } return undef; }, }); app->defaults( layout => 'default' ); app->attr( Loading Loading @@ -772,6 +794,16 @@ post '/x/geolocation' => sub { }; get '/x/login' => sub { my ($self) = @_; $self->render('login'); }; get '/x/register' => sub { my ($self) = @_; $self->render('register'); }; get '/*station' => sub { my ($self) = @_; my $station = $self->stash('station'); Loading
templates/login.html.ep 0 → 100644 +18 −0 Original line number Diff line number Diff line <div class="row"> <form class="col s12"> <div class="row"> <div class="input-field col s12"> <i class="material-icons prefix">account_circle</i> <input id="user" type="text" class="validate"> <label for="user">User</label> </div> </div> <div class="row"> <div class="input-field col s12"> <i class="material-icons prefix">lock</i> <input id="password" type="password" class="validate"> <label for="password">Password</label> </div> </div> </form> </div>
templates/register.html.ep 0 → 100644 +38 −0 Original line number Diff line number Diff line <div class="row"> %= form_for '/x/register' => (class => 'col s12', method => 'POST') => begin <div class="row"> <div class="input-field col l6 m12 s12"> <i class="material-icons prefix">account_circle</i> <input id="account" type="text" class="validate"> <label for="account">Name</label> </div> <div class="input-field col l6 m12 s12"> <i class="material-icons prefix">email</i> <input id="email" type="email" class="validate"> <label for="email">Mail-Adresse</label> </div> <div class="input-field col l6 m12 s12"> <i class="material-icons prefix">lock</i> <input id="password" type="password" class="validate"> <label for="password">Passwort</label> </div> <div class="input-field col l6 m12 s12"> <i class="material-icons prefix">lock</i> <input id="password2" type="password" class="validate"> <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="register"> Registrieren <i class="material-icons right">send</i> </button> </div> <div class="col s3 m3 l3"> </div> </div> %= end </div>