-
Guillaume ROUSSE authoredGuillaume ROUSSE authored
WebRequest.pm 20.94 KiB
package IdPAccountManager::WebRequest;
use strict;
use warnings;
use English qw(-no_match_vars);
use IdPAccountManager::Logger;
use IdPAccountManager::Data::TestAccount;
use IdPAccountManager::Data::AuthenticationToken;
use IdPAccountManager::Data::ServiceProvider;
## New web request
sub new {
my ($pkg, %args) = @_;
my $self = {
format => $args{format},
actions => $args{actions},
configuration => $args{configuration},
};
$self->{logger} = IdPAccountManager::Logger->new(
file => $self->{configuration}->{log_file},
verbosity => $self->{configuration}->{log_level}
);
$self->{logger}->log(
level => LOG_INFO,
message => ''
);
IdPAccountManager::DB->register_db(
driver => $self->{configuration}->{database_type},
database => $self->{configuration}->{database_name},
host => $self->{configuration}->{database_host},
password => $self->{configuration}->{database_password},
username => $self->{configuration}->{database_user}
);
$self->{db} = IdPAccountManager::DB->new();
my $http_query = CGI->new();
## Input parameters
my %in_vars = $http_query->Vars;
$self->{param_in} = \%in_vars;
## Check if admin acts as another user
$self->{cookies} = CGI::Cookie->fetch;
#if (defined $self->{cookies}->{as_user} && $request->{is_admin}) {
# $self->{utilisateur} = $request->{as_user} = $request->{cookies}->{as_user}->value;
# $self->{is_admin} = 0;
#}
## Usefull data for output (web pages or mail notices)
$self->{param_out}->{url_cgi} = $ENV{SCRIPT_NAME};
$self->{param_out}->{env} = \%ENV;
$self->{param_out}->{actions} = $args{actions};
$self->{param_out}->{conf} = $self->{configuration};
## Clean input vars
foreach my $key (keys %{ $self->{param_in} }) {
## Removing all ^M (0D)
$self->{param_in}->{$key} =~ s/\r//g;
$self->{param_in}->{$key} =~ s/\s+$//; ## Remove trailing spaces
$self->{param_in}->{$key} =~ s/^\s+//; ## Remove leading spaces
## If action_xx param is set, then action=xx