|
Lines 154-159
sub get_template_and_user {
Link Here
|
| 154 |
|
154 |
|
| 155 |
my $in = shift; |
155 |
my $in = shift; |
| 156 |
my ( $user, $cookie, $sessionID, $flags ); |
156 |
my ( $user, $cookie, $sessionID, $flags ); |
|
|
157 |
$cookie = []; |
| 157 |
|
158 |
|
| 158 |
# Get shibboleth login attribute |
159 |
# Get shibboleth login attribute |
| 159 |
my $shib = C4::Context->config('useshibboleth') && shib_ok(); |
160 |
my $shib = C4::Context->config('useshibboleth') && shib_ok(); |
|
Lines 243-249
sub get_template_and_user {
Link Here
|
| 243 |
if ($kick_out) { |
244 |
if ($kick_out) { |
| 244 |
$template = C4::Templates::gettemplate( 'opac-auth.tt', 'opac', |
245 |
$template = C4::Templates::gettemplate( 'opac-auth.tt', 'opac', |
| 245 |
$in->{query} ); |
246 |
$in->{query} ); |
| 246 |
$cookie = $in->{query}->cookie( |
247 |
push @$cookie, $in->{query}->cookie( |
| 247 |
-name => 'CGISESSID', |
248 |
-name => 'CGISESSID', |
| 248 |
-value => '', |
249 |
-value => '', |
| 249 |
-expires => '', |
250 |
-expires => '', |
|
Lines 656-666
sub get_template_and_user {
Link Here
|
| 656 |
# what to do |
657 |
# what to do |
| 657 |
my $language = C4::Languages::getlanguage( $in->{'query'} ); |
658 |
my $language = C4::Languages::getlanguage( $in->{'query'} ); |
| 658 |
my $languagecookie = C4::Templates::getlanguagecookie( $in->{'query'}, $language ); |
659 |
my $languagecookie = C4::Templates::getlanguagecookie( $in->{'query'}, $language ); |
| 659 |
if ( ref $cookie eq 'ARRAY' ) { |
660 |
push @{$cookie}, $languagecookie; |
| 660 |
push @{$cookie}, $languagecookie; |
|
|
| 661 |
} else { |
| 662 |
$cookie = [ $cookie, $languagecookie ]; |
| 663 |
} |
| 664 |
} |
661 |
} |
| 665 |
|
662 |
|
| 666 |
return ( $template, $borrowernumber, $cookie, $flags ); |
663 |
return ( $template, $borrowernumber, $cookie, $flags ); |
|
Lines 810-815
sub _timeout_syspref {
Link Here
|
| 810 |
return $timeout; |
807 |
return $timeout; |
| 811 |
} |
808 |
} |
| 812 |
|
809 |
|
|
|
810 |
sub clear_all_cookies { |
| 811 |
my ( $query ) = shift; |
| 812 |
my @cookies; |
| 813 |
for my $cookie_name ( $query->cookie ) { |
| 814 |
push @cookies, $query->cookie( -name => $cookie_name, -value => '', -expires => '', -HttpOnly => 1 ); |
| 815 |
} |
| 816 |
return \@cookies; |
| 817 |
} |
| 818 |
|
| 813 |
sub checkauth { |
819 |
sub checkauth { |
| 814 |
my $query = shift; |
820 |
my $query = shift; |
| 815 |
|
821 |
|
|
Lines 846-851
sub checkauth {
Link Here
|
| 846 |
my $loggedin = 0; |
852 |
my $loggedin = 0; |
| 847 |
my %info; |
853 |
my %info; |
| 848 |
my ( $userid, $cookie, $sessionID, $flags ); |
854 |
my ( $userid, $cookie, $sessionID, $flags ); |
|
|
855 |
$cookie = []; |
| 849 |
my $logout = $query->param('logout.x'); |
856 |
my $logout = $query->param('logout.x'); |
| 850 |
|
857 |
|
| 851 |
my $anon_search_history; |
858 |
my $anon_search_history; |
|
Lines 869-875
sub checkauth {
Link Here
|
| 869 |
if ( !$shib and defined( $ENV{'REMOTE_USER'} ) and $ENV{'REMOTE_USER'} ne '' and $userid = $ENV{'REMOTE_USER'} ) { |
876 |
if ( !$shib and defined( $ENV{'REMOTE_USER'} ) and $ENV{'REMOTE_USER'} ne '' and $userid = $ENV{'REMOTE_USER'} ) { |
| 870 |
|
877 |
|
| 871 |
# Using Basic Authentication, no cookies required |
878 |
# Using Basic Authentication, no cookies required |
| 872 |
$cookie = $query->cookie( |
879 |
push @$cookie, $query->cookie( |
| 873 |
-name => 'CGISESSID', |
880 |
-name => 'CGISESSID', |
| 874 |
-value => '', |
881 |
-value => '', |
| 875 |
-expires => '', |
882 |
-expires => '', |
|
Lines 914-919
sub checkauth {
Link Here
|
| 914 |
my $shibSuccess = C4::Context->userenv->{'shibboleth'}; |
921 |
my $shibSuccess = C4::Context->userenv->{'shibboleth'}; |
| 915 |
$session->delete(); |
922 |
$session->delete(); |
| 916 |
$session->flush; |
923 |
$session->flush; |
|
|
924 |
$cookie = clear_all_cookies($query); |
| 917 |
C4::Context::_unset_userenv($sessionID); |
925 |
C4::Context::_unset_userenv($sessionID); |
| 918 |
$sessionID = undef; |
926 |
$sessionID = undef; |
| 919 |
|
927 |
|
|
Lines 927-933
sub checkauth {
Link Here
|
| 927 |
} |
935 |
} |
| 928 |
} else { |
936 |
} else { |
| 929 |
|
937 |
|
| 930 |
$cookie = $query->cookie( |
938 |
push @$cookie, $query->cookie( |
| 931 |
-name => 'CGISESSID', |
939 |
-name => 'CGISESSID', |
| 932 |
-value => $session->id, |
940 |
-value => $session->id, |
| 933 |
-HttpOnly => 1, |
941 |
-HttpOnly => 1, |
|
Lines 971-977
sub checkauth {
Link Here
|
| 971 |
|
979 |
|
| 972 |
$sessionID = $session->id; |
980 |
$sessionID = $session->id; |
| 973 |
C4::Context->_new_userenv($sessionID); |
981 |
C4::Context->_new_userenv($sessionID); |
| 974 |
$cookie = $query->cookie( |
982 |
push @$cookie, $query->cookie( |
| 975 |
-name => 'CGISESSID', |
983 |
-name => 'CGISESSID', |
| 976 |
-value => $sessionID, |
984 |
-value => $sessionID, |
| 977 |
-HttpOnly => 1, |
985 |
-HttpOnly => 1, |
|
Lines 1171-1177
sub checkauth {
Link Here
|
| 1171 |
$domain =~ s|\.\*||g; |
1179 |
$domain =~ s|\.\*||g; |
| 1172 |
if ( $ip !~ /^$domain/ ) { |
1180 |
if ( $ip !~ /^$domain/ ) { |
| 1173 |
$loggedin = 0; |
1181 |
$loggedin = 0; |
| 1174 |
$cookie = $query->cookie( |
1182 |
push @$cookie, $query->cookie( |
| 1175 |
-name => 'CGISESSID', |
1183 |
-name => 'CGISESSID', |
| 1176 |
-value => '', |
1184 |
-value => '', |
| 1177 |
-HttpOnly => 1, |
1185 |
-HttpOnly => 1, |
|
Lines 1259-1266
sub checkauth {
Link Here
|
| 1259 |
if ( $loggedin || $authnotrequired ) |
1267 |
if ( $loggedin || $authnotrequired ) |
| 1260 |
{ |
1268 |
{ |
| 1261 |
# successful login |
1269 |
# successful login |
| 1262 |
unless ($cookie) { |
1270 |
unless (@$cookie) { |
| 1263 |
$cookie = $query->cookie( |
1271 |
push @$cookie, $query->cookie( |
| 1264 |
-name => 'CGISESSID', |
1272 |
-name => 'CGISESSID', |
| 1265 |
-value => '', |
1273 |
-value => '', |
| 1266 |
-HttpOnly => 1, |
1274 |
-HttpOnly => 1, |