42 lines
1.0 KiB
Perl
42 lines
1.0 KiB
Perl
package MyApp::Controller::Auth;
|
|
use Mojo::Base 'Mojolicious::Controller', -signatures;
|
|
use List::Util qw( min max );
|
|
|
|
sub index ($self) {
|
|
my $msg = $self->flash('err');
|
|
$self->render(name_msg => $msg);
|
|
}
|
|
|
|
sub login ($self) {
|
|
my $logname = $self->param('logname');
|
|
if ($logname =~ m/^[[:alpha:]]+$/) {
|
|
$self->session(logname => $logname);
|
|
my $post_login = $self->session('post_login');
|
|
$self->session('post_login' => undef);
|
|
$self->redirect_to($post_login || 'home');
|
|
} else {
|
|
$self->flash(err => "Try again!");
|
|
$self->flash(attempted_name => $logname);
|
|
$self->redirect_to('auth');
|
|
}
|
|
}
|
|
|
|
sub logout ($self) {
|
|
$self->session(logname => undef);
|
|
$self->redirect_to('home');
|
|
}
|
|
|
|
sub preferences ($self) {
|
|
$self->session(
|
|
rows_per_page => max(
|
|
1, min($self->max_rpp, $self->param('rows_per_page'))
|
|
)
|
|
);
|
|
$self->flash(
|
|
confirmation => sprintf("Updated rows per page to %s.", $self->rpp)
|
|
);
|
|
$self->redirect_to('account');
|
|
}
|
|
|
|
1;
|