Line 19
Link Here
|
|
|
19 |
# |
20 |
# Shibboleth support added by Tom Francart (2012) - only tested at KU Leuven |
Line 32
Link Here
|
|
|
34 |
use C4::Members qw(AddMember); # [Tom] Shibboleth: add user |
35 |
use C4::Members::Attributes; |
36 |
use C4::Members::AttributeTypes; |
37 |
|
Lines 636-645
Link Here
|
636 |
if ( $userid = $ENV{'REMOTE_USER'} ) { |
642 |
# [Tom] Removed: incompatible with Shib |
637 |
# Using Basic Authentication, no cookies required |
643 |
# if ( $userid = $ENV{'REMOTE_USER'} ) { |
638 |
$cookie = $query->cookie( |
644 |
# # Using Basic Authentication, no cookies required |
639 |
-name => 'CGISESSID', |
645 |
# $cookie = $query->cookie( |
640 |
-value => '', |
646 |
# -name => 'CGISESSID', |
641 |
-expires => '' |
647 |
# -value => '', |
642 |
); |
648 |
# -expires => '' |
643 |
$loggedin = 1; |
649 |
# ); |
644 |
} |
650 |
# $loggedin = 1; |
645 |
elsif ( $sessionID = $query->cookie("CGISESSID")) { # assignment, not comparison |
651 |
# } |
646 |
-- |
652 |
if ( $sessionID = $query->cookie("CGISESSID")) { # assignment, not comparison |
Line 730
Link Here
|
|
|
737 |
|
738 |
unless ($userid) { |
739 |
$userid = $ENV{'HTTP_SHIB_PERSON_UID'}; |
740 |
} |
741 |
|
Line 1441
Link Here
|
|
|
1453 |
|
1454 |
|
Line 1491
Link Here
|
|
|
1505 |
|
1506 |
|
1507 |
# [Tom] Try shibboleth |
1508 |
|
1509 |
# check if shib login ok: |
1510 |
if ($ENV{'HTTP_SHIB_PERSON_UID'} =~ /^\w\d+$/ ) { |
1511 |
|
1512 |
# print "\n\nkonijn2\n"; |
1513 |
|
1514 |
|
1515 |
my %borrower; |
1516 |
$borrower{cardnumber} = $ENV{'HTTP_SHIB_PERSON_UID'}; |
1517 |
$borrower{userid} = $ENV{'HTTP_SHIB_PERSON_UID'}; |
1518 |
$borrower{firstname} = $ENV{'HTTP_SHIB_PERSON_GIVENNAME'}; # MANDATORY FIELD |
1519 |
$borrower{surname} = $ENV{'HTTP_SHIB_PERSON_SURNAME'}; # MANDATORY FIELD |
1520 |
$borrower{initials} = substr($borrower{firstname},0,1).substr($borrower{surname},0,1)." "; # MANDATORY FIELD |
1521 |
$borrower{streetaddress} = ''; # MANDATORY FIELD |
1522 |
$borrower{city} = " "; # MANDATORY FIELD |
1523 |
$borrower{phone} = " "; # MANDATORY FIELD |
1524 |
$borrower{branchcode} = 'AUD'; # MANDATORY FIELD |
1525 |
$borrower{email} = $ENV{'HTTP_SHIB_PERSON_MAIL'}; |
1526 |
$borrower{dateexpiry} = '2050-01-01'; |
1527 |
|
1528 |
|
1529 |
my $catnr=$ENV{'HTTP_SHIB_KUL_OUNUMBER'}; |
1530 |
if ($catnr =~ /50000672/) { # EXP ORL AUD |
1531 |
$borrower{categorycode} = 'EXPORL'; |
1532 |
$borrower{flags} = 2; |
1533 |
} else { |
1534 |
$borrower{categorycode} = 'STUDENT'; |
1535 |
} |
1536 |
|
1537 |
$userid=$borrower{userid}; |
1538 |
|
1539 |
# check if borrower exists |
1540 |
my $sth=$dbh->prepare("select password from borrowers where cardnumber=?"); |
1541 |
$sth->execute($userid); |
1542 |
if ($sth->rows) { |
1543 |
# it exists, MODIFY |
1544 |
# warn "MODIF borrower"; |
1545 |
my $sth2 = $dbh->prepare("update borrowers set firstname=?,surname=?,initials=?,categorycode=?,branchcode=?,email=? where cardnumber=?"); |
1546 |
$sth2->execute($borrower{firstname},$borrower{surname},$borrower{initials}, |
1547 |
$borrower{categorycode},$borrower{branchcode},$borrower{email}, |
1548 |
,$userid); |
1549 |
} else { |
1550 |
# it does not exists, ADD borrower |
1551 |
print "ADD borrower"; |
1552 |
my $borrowerid = AddMember(%borrower); |
1553 |
|
1554 |
# C4::Members::Attributes::SetBorrowerAttributes($borrowernumber, $extended_patron_attributes); |
1555 |
} |
1556 |
# |
1557 |
# CREATE or MODIFY PASSWORD/LOGIN |
1558 |
# |
1559 |
# search borrowerid |
1560 |
# $sth = $dbh->prepare("select borrowernumber from borrowers where cardnumber=?"); |
1561 |
# $sth->execute($userid); |
1562 |
# my ($borrowerid)=$sth->fetchrow; |
1563 |
# warn "change password for $borrowerid setting $password"; |
1564 |
# my $digest=md5_base64($password); |
1565 |
# changepassword($userid,$borrowerid,$digest); |
1566 |
return 1, $userid, $userid; |
1567 |
|
1568 |
} |
1569 |
####### End Shibboleth ######### |
1570 |
|
1571 |
|