55 lines
1.3 KiB
Perl
55 lines
1.3 KiB
Perl
package Pear::LocalLoop::Controller::Admin;
|
|
use Mojo::Base 'Mojolicious::Controller';
|
|
|
|
sub under {
|
|
my $c = shift;
|
|
|
|
if ( $c->is_user_authenticated ) {
|
|
return 1 if $c->current_user->is_admin;
|
|
}
|
|
$c->redirect_to('/admin');
|
|
return 0;
|
|
}
|
|
|
|
sub home {
|
|
my $c = shift;
|
|
|
|
my $user_rs = $c->schema->resultset('User');
|
|
my $token_rs = $c->schema->resultset('AccountToken');
|
|
my $pending_orgs_rs = $c->schema->resultset('Organisation')->search({ pending => 1 });
|
|
my $pending_transaction_rs = $pending_orgs_rs->entity->sales;
|
|
my $feedback_rs = $c->schema->resultset('Feedback');
|
|
my $pending_feedback_rs = $feedback_rs->search({ actioned => 0 });
|
|
$c->stash(
|
|
user_count => $user_rs->count,
|
|
tokens => {
|
|
total => $token_rs->count,
|
|
unused => $token_rs->search({ used => 0 })->count,
|
|
},
|
|
pending_orgs => $pending_orgs_rs->count,
|
|
pending_trans => $pending_transaction_rs->count,
|
|
feedback => {
|
|
total => $feedback_rs->count,
|
|
pending => $pending_feedback_rs->count,
|
|
},
|
|
);
|
|
}
|
|
|
|
sub auth_login {
|
|
my $c = shift;
|
|
|
|
if ( $c->authenticate($c->param('email'), $c->param('password')) ) {
|
|
$c->redirect_to('/admin/home');
|
|
} else {
|
|
$c->redirect_to('/admin');
|
|
}
|
|
}
|
|
|
|
sub auth_logout {
|
|
my $c = shift;
|
|
|
|
$c->logout;
|
|
$c->redirect_to('/admin');
|
|
}
|
|
|
|
1;
|