From 4b32665ac007f99c12837e63a6f2695109885077 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 Signed-off-by: Kyle M Hall (cherry picked from commit 4c631a0824a38177279475f77e9246087fa97515) Signed-off-by: Katrin Fischer (cherry picked from commit f5fbf222f4c947346f7c56938ff87388ea5fb136) Signed-off-by: Julian Maurice --- 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 90c35b0b74..b715863a21 100644 --- a/C4/Auth_with_ldap.pm +++ b/C4/Auth_with_ldap.pm @@ -333,7 +333,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.39.5