18a19,20 > # > # Shibboleth support added by Tom Francart (2012) - only tested at KU Leuven 31a34,37 > use C4::Members qw(AddMember); # [Tom] Shibboleth: add user > use C4::Members::Attributes; > use C4::Members::AttributeTypes; > 636,645c642,652 < if ( $userid = $ENV{'REMOTE_USER'} ) { < # Using Basic Authentication, no cookies required < $cookie = $query->cookie( < -name => 'CGISESSID', < -value => '', < -expires => '' < ); < $loggedin = 1; < } < elsif ( $sessionID = $query->cookie("CGISESSID")) { # assignment, not comparison --- > # [Tom] Removed: incompatible with Shib > # if ( $userid = $ENV{'REMOTE_USER'} ) { > # # Using Basic Authentication, no cookies required > # $cookie = $query->cookie( > # -name => 'CGISESSID', > # -value => '', > # -expires => '' > # ); > # $loggedin = 1; > # } > if ( $sessionID = $query->cookie("CGISESSID")) { # assignment, not comparison 729a737,741 > > unless ($userid) { > $userid = $ENV{'HTTP_SHIB_PERSON_UID'}; > } > 1440a1453,1454 > > 1490a1505,1571 > > > # [Tom] Try shibboleth > > # check if shib login ok: > if ($ENV{'HTTP_SHIB_PERSON_UID'} =~ /^\w\d+$/ ) { > > # print "\n\nkonijn2\n"; > > > my %borrower; > $borrower{cardnumber} = $ENV{'HTTP_SHIB_PERSON_UID'}; > $borrower{userid} = $ENV{'HTTP_SHIB_PERSON_UID'}; > $borrower{firstname} = $ENV{'HTTP_SHIB_PERSON_GIVENNAME'}; # MANDATORY FIELD > $borrower{surname} = $ENV{'HTTP_SHIB_PERSON_SURNAME'}; # MANDATORY FIELD > $borrower{initials} = substr($borrower{firstname},0,1).substr($borrower{surname},0,1)." "; # MANDATORY FIELD > $borrower{streetaddress} = ''; # MANDATORY FIELD > $borrower{city} = " "; # MANDATORY FIELD > $borrower{phone} = " "; # MANDATORY FIELD > $borrower{branchcode} = 'AUD'; # MANDATORY FIELD > $borrower{email} = $ENV{'HTTP_SHIB_PERSON_MAIL'}; > $borrower{dateexpiry} = '2050-01-01'; > > > my $catnr=$ENV{'HTTP_SHIB_KUL_OUNUMBER'}; > if ($catnr =~ /50000672/) { # EXP ORL AUD > $borrower{categorycode} = 'EXPORL'; > $borrower{flags} = 2; > } else { > $borrower{categorycode} = 'STUDENT'; > } > > $userid=$borrower{userid}; > > # check if borrower exists > my $sth=$dbh->prepare("select password from borrowers where cardnumber=?"); > $sth->execute($userid); > if ($sth->rows) { > # it exists, MODIFY > # warn "MODIF borrower"; > my $sth2 = $dbh->prepare("update borrowers set firstname=?,surname=?,initials=?,categorycode=?,branchcode=?,email=? where cardnumber=?"); > $sth2->execute($borrower{firstname},$borrower{surname},$borrower{initials}, > $borrower{categorycode},$borrower{branchcode},$borrower{email}, > ,$userid); > } else { > # it does not exists, ADD borrower > print "ADD borrower"; > my $borrowerid = AddMember(%borrower); > > # C4::Members::Attributes::SetBorrowerAttributes($borrowernumber, $extended_patron_attributes); > } > # > # CREATE or MODIFY PASSWORD/LOGIN > # > # search borrowerid > # $sth = $dbh->prepare("select borrowernumber from borrowers where cardnumber=?"); > # $sth->execute($userid); > # my ($borrowerid)=$sth->fetchrow; > # warn "change password for $borrowerid setting $password"; > # my $digest=md5_base64($password); > # changepassword($userid,$borrowerid,$digest); > return 1, $userid, $userid; > > } > ####### End Shibboleth ######### > >