Arepa
view release on metacpan or search on metacpan
lib/Arepa/Web/Auth.pm view on Meta::CPAN
use English qw(-no_match_vars);
use base 'Arepa::Web::Base';
use DBI;
use Digest::MD5;
use YAML;
use MojoX::Session;
# Let session cookies live one week
use constant TTL_SESSION_COOKIE => 60 * 60 * 24 * 7;
sub _check_credentials {
my ($self, $username, $password, $auth_type) = @_;
if (defined $auth_type && $auth_type eq 'file_md5') {
my $user_file_path =
$self->config->get_key('web_ui:authentication:user_file');
my %users = %{YAML::LoadFile($user_file_path)};
return ($users{users}->{$username} eq Digest::MD5::md5_hex($password));
}
elsif (!defined $auth_type) {
my %users = %{YAML::LoadFile($self->config->
lib/Arepa/Web/Auth.pm view on Meta::CPAN
"environment variable to the " .
"application");
}
}
else {
if (defined $self->param('username') &&
defined $self->param('password')) {
my $valid_creds;
eval {
$valid_creds =
$self->_check_credentials($self->param('username'),
$self->param('password'),
$auth_type);
};
if ($EVAL_ERROR) {
$self->vars("error" => $EVAL_ERROR);
}
else {
if ($valid_creds) {
$session->create;
$session->data(username => $self->param('username'));
( run in 0.234 second using v1.01-cache-2.11-cpan-4d50c553e7e )