lemonldap-ng/modules/lemonldap-portal/examples/accueil_obj.pl
2006-12-18 11:32:33 +00:00

142 lines
4.2 KiB
Perl
Executable File
Raw Blame History

#!/usr/bin/perl
use Lemonldap::Portal::Standard;
use Lemonldap::Config::Parameters;
use CGI ':cgi-lib';
use Template;
use Net::LDAP;
use MIME::Base64;
use Apache::Session::Memorycached;
use CGI::Carp 'fatalsToBrowser';
use Data::Dumper;
#use ReverseProxyConfig; #
our $template_config;
our $login;
our $applications_list_url;
our $path;
our $cookie_name;
our $domain;
our $ldap_server;
our $ldap_port;
our $ldap_branch_people;
our $pass;
our $session;
my $message = '';
#my %param;
my %params = Vars;
my $conf = Lemonldap::Config::Parameters->new(
file => "/opt/apache/portail/application_new.xml",
cache => 'CONF'
);
print STDERR "je passe ici $session\n";
my $config = $conf->getDomain('appli.cp');
print STDERR "je passe ici $session\n";
$template_config = $config->{templates_options};
my $tempopt = 'templates_dir';
my $valeur = $config->{$tempopt};
my $templates_opt =
$conf->formateLineHash( $template_config, $tempopt, $valeur );
$template_config = $templates_opt;
$applications_list_url = $config->{menu};
$login = $config->{login};
$cookie_name = $config->{cookie};
$domain = "." . $config->{name};
$path = $config->{path};
$ldap_server = $config->{ldap_server};
$ldap_port = $config->{ldap_port};
$ldap_branch_people = $config->{ldap_branch_people};
$dnmanager = $config->{DnManager};
$pass = $config->{passwordManager};
my $sessionrr = $conf->findParagraph( 'session', 'memcached' );
$session = $sessionrr->{servers};
my $stack_user = Lemonldap::Portal::Standard->new();
my $urlc;
my $urldc;
$retour = $stack_user->process(
param => \%params,
server => $ldap_server,
port => $ldap_port,
DnManager => $dnmanager,
passwordManager => $pass,
branch => $ldap_branch_people
);
if ($retour) {
$message = $retour->message;
$erreur = $retour->error;
}
if ($erreur) {
my $ident = $retour->user;
### il n y rien de passee , afficher la grille
##------------------------------------------------------------------------------
## G<>n<EFBFBD>ration du HTML de la page de formulaire
##------------------------------------------------------------------------------
my $data = {
'urlc' => $urlc,
'urldc' => $urldc,
'message' => $message,
'identifiant' => $ident,
};
my $template = Template->new($template_config);
print CGI::header();
$template->process( 'login.thtml', $data ) or die( $template->error() );
##==============================================================================
## Fin du fichier
##==============================================================================
exit;
}
##==============================================================================## Ici tout est ok il faut creer le hash sur la session
##==============================================================================
my $monhash = $retour->infoSession;
my $fg = eval $session;
my %session;
tie %session, 'Apache::Session::Memorycached', undef, { 'servers' => $fg };
foreach ( keys %{$monhash} ) {
$session{$_} = $monhash->{$_} if $monhash->{$_};
}
my $session_id = $session{_session_id};
my $urldc;
my $urldc = $retour->getRedirection;
untie(%session);
##---------------------------------------------------------------------------
## Cr<43>ation du cookie
##---------------------------------------------------------------------------
my $cookie = CGI::cookie(
-name => $cookie_name,
-value => $session_id,
-domain => $domain,
-path => $path,
);
print STDERR "ericgerman : session $session_id\n";
##---------------------------------------------------------------------------
## G<>n<EFBFBD>ration du HTML par le template
##---------------------------------------------------------------------------
$urldc = $applications_list_url
if ( $urldc eq '' );
my $data = {
urldc => $urldc,
message => 'Session ' . $session_id . $cookie,
};
my $template = Template->new($template_config);
print CGI::header( -Refresh => '1; URL=' . $urldc, -cookie => $cookie );
$template->process( 'redirect.thtml', $data ) or die( $template->error() );
exit(0);