From 48342d69485bf47d5a4705485c7dbfb6a40588fb Mon Sep 17 00:00:00 2001 From: Oliver Bock Date: Mon, 30 Nov 2015 13:57:58 +0100 Subject: [PATCH] Bug 14625 - LDAP: skip extended patron attributes in 'borrowers' attribute update * Any extended patron attributes will cause the update to fail as those attributes don't exist in the 'borrowers' table * The update of the extended patron attributes is already dealt with in checkpw_ldap() * Ergo: just skip those attributes here Signed-off-by: Martin Renvoize Signed-off-by: Jonathan Druart I did not test this patch but code looks good --- C4/Auth_with_ldap.pm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/C4/Auth_with_ldap.pm b/C4/Auth_with_ldap.pm index 91d3f633d7..bbb1094229 100644 --- a/C4/Auth_with_ldap.pm +++ b/C4/Auth_with_ldap.pm @@ -363,7 +363,16 @@ sub update_local { my $borrowerid = shift or croak "No borrowerid"; my $borrower = shift or croak "No borrower record"; + # skip extended patron attributes in 'borrowers' attribute update my @keys = keys %$borrower; + if (C4::Context->preference('ExtendedPatronAttributes')) { + foreach my $attribute_type ( C4::Members::AttributeTypes::GetAttributeTypes() ) { + my $code = $attribute_type->{code}; + @keys = grep { $_ ne $code } @keys; + $debug and printf STDERR "ignoring extended patron attribute '%s' in update_local()\n", $code; + } + } + my $dbh = C4::Context->dbh; my $query = "UPDATE borrowers\nSET " . join(',', map {"$_=?"} @keys) . -- 2.11.0