51 lines
1.6 KiB
Perl
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 ; |