#!/usr/bin/perl use strict; use warnings; use lib qw(../adbook/); use CGI; use DBI; use CGI::Session; use CGI::Carp qw/fatalsToBrowser warningsToBrowser/; use MyAdBookManager; use HTML::Template; # Benötigte Variablen initialisieren und definieren my $session_dsn = "dbi:mysql:database=adbook_sessions;host=localhost;", my $session_user = "xxxxxxxxxxxxxx"; my $session_pass = "xxxxxxxxxxxxxx"; my $sid = "SID"; # Benötigte Objekte erstellen my $dbh = DBI->connect($session_dsn,$session_user,$session_pass,{PrintError=>0,RaiseError=>0}) or die DBI::errstr(); my $adbook = MyAdBookManager->new(); my $session = CGI::Session->load(); # Session verlängern falls noch nicht abgelaufen unless ($session->is_expired()) { # Session abgelaufen oder existiert nicht $session->new("driver:MySQL",$sid,{Handle=>$dbh}); $session->expire("+30m");# should be 3m for debugging and testing } my $userdn = $session->param("userdn") || CGI::param("userdn") || ''; my $passwd = $session->param("passwd") || CGI::param("passwd") || ''; my $authdn = $adbook->Auth($userdn,$passwd); if (lc($authdn) eq lc($userdn)) { # Wenn LDAP Authentifizierung erfolgreich Credentials in Session speichern ... $session->param("userdn",$userdn); $session->param("passwd",$passwd); # ... und gewünschte Aktion vornehmen $adbook->doAction(CGI::param("action") || '',CGI::Vars()); } else { # Ansonsten Login vorbereiten $adbook->doAction("show_logon"); } # Passendes Template laden und mit den passenden Werten ausfüllen my $tmpl = HTML::Template->new(filename=>$adbook->requiredTemplate(),associate=>$session) or die $!; for my $param ($adbook->Fields()) { $tmpl->param(%$param); } # Und Bereit zur Ausgabe print $session->header(); warningsToBrowser(1); # only for debugging print $tmpl->output(); exit;