-
Guillaume ROUSSE authoredGuillaume ROUSSE authored
App.pm 22.39 KiB
package AccountManager::App;
use strict;
use warnings;
use CGI::Simple;
use CGI::Simple::Cookie;
use DateTime;
use English qw(-no_match_vars);
use Log::Any::Adapter;
use List::MoreUtils qw(uniq);
use Template;
use Template::Constants qw(:chomp);
use UNIVERSAL::require;
use AccountManager::Account;
use AccountManager::Metadata;
use AccountManager::ServiceProvider;
use AccountManager::Token;
use AccountManager::Tools;
use AccountManager::L10N;
# Format de type URL HTTP ou URN
my %patterns = (
entityid => qr{
^
(?:
https?://[\w.:/-]+
|
urn:[\w.:-]+
)
$
}x
);
my %actions = (
home => 'req_home',
start => 'req_start',
select_federation => 'req_select_federation',
select_sp => 'req_select_sp',
select_email => 'req_select_email',
complete_challenge => 'req_complete_challenge',
create_accounts => 'req_create_accounts',
download_accounts => 'req_download_accounts',
);
my $version = '1.1.1';
sub new {
my ($pkg, %args) = @_;
my $self = {
configuration => $args{configuration},
};
bless $self, $pkg;
if ($self->{configuration}->{logger}) {
Log::Any::Adapter->set(
'File',
$self->{configuration}->{logger}->{file},
log_level => $self->{configuration}->{logger}->{level}
);
} else {
warn "no logger in configuration, logging disabled\n";
}
$self->{logger} = Log::Any->get_logger();
$self->{cgi} = CGI::Simple->new();