You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ngcp-panel/lib/NGCP/Panel/Controller/Login.pm

73 lines
1.6 KiB

package NGCP::Panel::Controller::Login;
use Moose;
use namespace::autoclean;
BEGIN { extends 'Catalyst::Controller'; }
=head1 NAME
NGCP::Panel::Controller::Login - Catalyst Controller
=head1 DESCRIPTION
Catalyst Controller.
=head1 METHODS
=cut
=head2 index
=cut
sub index :Path Form {
my ( $self, $c, $realm ) = @_;
$c->log->debug("*** Login::index");
$realm = 'subscriber'
unless($realm and ($realm eq 'admin' or $realm eq 'reseller'));
my $user = $c->request->param('username');
my $pass = $c->request->param('password');
$c->log->debug("*** Login::index user=$user, pass=$pass, realm=$realm");
if($user && $pass) {
$c->log->debug("*** Login::index user=$user, pass=$pass, realm=$realm");
if($c->authenticate({ username => $user, password => $pass }, $realm)) {
# auth ok
my $target = $c->session->{'target'} || '/';
delete $c->session->{target};
$c->log->debug("*** Login::index auth ok, redirecting to $target");
$c->response->redirect($target);
} else {
$c->log->debug("*** Login::index auth failed");
$c->stash->{error}->{message} = 'login failed';
}
} else {
if($user || $pass) {
$c->stash->{error}->{message} = 'invalid form';
}
}
$c->stash(realm => $realm);
$c->stash(template => 'login.tt');
}
=head1 AUTHOR
Andreas Granig,,,
=head1 LICENSE
This library is free software. You can redistribute it and/or modify
it under the same terms as Perl itself.
=cut
__PACKAGE__->meta->make_immutable;
1;
# vim: set tabstop=4 expandtab: