aisa/libs/modules/_FromProd/session.pm
2026-02-03 14:35:43 +02:00

51 lines
1.6 KiB
Perl

sub check_session {
use DBI;
use CGI::Session;
use CGI::Cookie;
my %cookies = fetch CGI::Cookie ;
my $cgisessid = defined $cookies{'CGISESSID'} ? $cookies{'CGISESSID'}->value : undef; # This does
use db ;
&db_open_ro ;
$userid = 0 ;
$session = load CGI::Session("driver:MySQL", $cgisessid, {Handle=>$dbh});
$userid = $session->param(-name=>'id');
$is_logged_in = $session->param(-name=>'_IS_LOGGED_IN');
$username = lc $session->param(-name=>'uname');
$useremail = lc $session->param(-name=>'uemail');
$usertype = lc $session->param(-name=>'utype');
$orgids = $session->param(-name=>'oids');
$regids = $session->param(-name=>'rids');
$custids = $session->param(-name=>'cids');
my @orgids = split(/\,/,$orgids);
foreach (@orgids) { $glob_orgids{$userid}{$_} = 1 ; }
my @regids = split(/\,/,$regids);
foreach (@regids) { next unless $_ > 0 ; $glob_regids{$userid}{$_} = 1 ; }
my @custids = split(/\,/,$custids);
foreach (@custids) { next unless $_ > 0 ; $glob_custids{$userid}{$_} = 1 ; }
$sessionid = $session->id();
if ($sessionid && $is_logged_in > 0 && $userid > 0) { # if $userid and $is_logged_in is -1 not allowed in
$session_state = 'active' ;
} elsif ($session->is_expired) {
$session_state = 'expired' ;
$session->delete() ;
} elsif ($session->is_empty) {
$session_state = 'empty' ;
} else {
$session_state = 'empty' ;
$session->delete() ;
}
&db_close_conn ;
} #------------------------------------------------------------------------------------------
1 ;