From a4f689b3bcd80b62dc4b99e117084be8e7529b27 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Wed, 30 Jul 2014 14:53:27 +0000 Subject: [PATCH] BUG 12026, Follow up: Added Documentation BUG 12026, Follow up: Updated to work with match point selection - The base bug that this patch enhances has added the ability to choose your match point in the configuration file. This patch adds code to take that change into account. --- C4/Auth_with_shibboleth.pm | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/C4/Auth_with_shibboleth.pm b/C4/Auth_with_shibboleth.pm index fd95f90..cf837b7 100644 --- a/C4/Auth_with_shibboleth.pm +++ b/C4/Auth_with_shibboleth.pm @@ -83,13 +83,13 @@ sub get_login_shib { sub checkpw_shib { $debug and warn "checkpw_shib"; - my ( $dbh, $userid ) = @_; + my ( $dbh, $match ) = @_; my $retnumber; - $debug and warn "User Shibboleth-authenticated as: $userid"; + $debug and warn "User Shibboleth-authenticated as: $match"; - # Does the given shibboleth attribute value ($userid) match a valid koha user ? + # Does the given shibboleth attribute value ($match) match a valid koha user ? my $sth = $dbh->prepare("select cardnumber, userid from borrowers where $shibbolethMatchField=?"); - $sth->execute($userid); + $sth->execute($match); if ( $sth->rows ) { my @retvals = $sth->fetchrow; $retnumber = $retvals[1]; @@ -97,19 +97,19 @@ sub checkpw_shib { return ( 1, $retnumber, $userid ); } + # If we reach this point, the user is not yet a valid koha user if ( $shib->{'autocreate'} ) { - return _autocreate( $dbh, $shib, $userid ); + return _autocreate( $dbh, $shib, $match ); } else { - # If we reach this point, the user is not a valid koha user $debug and warn "User $userid is not a valid Koha user"; return 0; } } sub _autocreate { - my ( $dbh, $shib, $userid ) = @_; + my ( $dbh, $shib, $match ) = @_; - my %borrower = ( userid => $userid ); + my %borrower = ( $shibbolethMatchField => $match ); while ( my ( $key, $entry ) = each %{$shib->{'mapping'}} ) { $borrower{$key} = ( $entry->{'is'} && $ENV{ $entry->{'is'} } ) || $entry->{'content'} || ''; @@ -238,6 +238,14 @@ Given a database handle and a shib_login attribute, this routine checks for a ma my ( $retval, $retcard, $retuserid ) = C4::Auth_with_shibboleth::checkpw_shib( $dbh, $shib_login ); +=head2 _autocreate + + my ( $retval, $retcard, $retuserid ) = _autocreate( $dbh, $shib, $userid ); + +Given a database handle, a shibboleth attribute reference and a userid this internal routine will add the given user to koha and return their user credentials + +This routine is NOT exported + =head1 SEE ALSO =cut -- 1.7.10.4