View | Details | Raw Unified | Return to bug 11808
Collapse All | Expand All

(-)a/C4/Auth_with_ldap.pm (-15 / +23 lines)
Lines 32-37 use Koha::AuthUtils qw(hash_password); Link Here
32
use List::MoreUtils qw( any );
32
use List::MoreUtils qw( any );
33
use Net::LDAP;
33
use Net::LDAP;
34
use Net::LDAP::Filter;
34
use Net::LDAP::Filter;
35
use Try::Tiny;
35
36
36
use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $debug);
37
use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $debug);
37
38
Lines 401-436 sub updateborrower_ldap { Link Here
401
    my $patron = shift;
402
    my $patron = shift;
402
    my $cardnumber = $patron->cardnumber;
403
    my $cardnumber = $patron->cardnumber;
403
404
404
    return 0 unless ($config{update});
405
    return unless ($config{update});
405
406
406
    my @hosts = split(',', $prefhost);
407
    my @hosts = split(',', $prefhost);
407
    my $db = Net::LDAP->new(\@hosts, timeout => ($ldap->{timeout} || 30)) or return 0;
408
    my $db = Net::LDAP->new(\@hosts, timeout => ($ldap->{timeout} || 30)) or return;
408
409
409
    my $cardnumber_field = $mapping{cardnumber}->{is} or die ldapserver_error("mapping for 'cardnumber'");
410
    my $cardnumber_field = $mapping{cardnumber}->{is} or die ldapserver_error("mapping for 'cardnumber'");
410
    my $filter = Net::LDAP::Filter->new("$cardnumber_field=$cardnumber") or die "Failed to create new Net::LDAP::Filter";
411
    my $filter = Net::LDAP::Filter->new("$cardnumber_field=$cardnumber") or die "Failed to create new Net::LDAP::Filter";
411
    my $res = ($config{anonymous}) ? $db->bind : $db->bind($ldapname, password=>$ldappassword);
412
    my $res = ($config{anonymous}) ? $db->bind : $db->bind($ldapname, password=>$ldappassword);
412
    if ($res->code) {   # connection refused
413
    if ($res->code) {   # connection refused
413
        warn "LDAP bind failed as ldapuser " . ($ldapname || '[ANONYMOUS]') . ": " . description($res);
414
        warn "LDAP bind failed as ldapuser " . ($ldapname || '[ANONYMOUS]') . ": " . description($res);
414
        return 0;
415
        return;
415
    }
416
    }
416
    my $search = $db->search(
417
    my $search = $db->search(
417
        base => $base,
418
        base => $base,
418
        filter => $filter,
419
        filter => $filter,
419
    );
420
    );
420
421
421
    # Search error, return 0
422
    # Search error, return undef
422
    return (0, $search->error) if $search->code;
423
    return (undef, $search->error) if $search->code;
423
424
424
    my $count = $search->count;
425
    my $count = $search->count;
425
    if ($count == 1) {
426
    if ($count == 1) {
426
        # User was found, update!
427
        # User was found, update!
427
        my %borrower = ldap_entry_2_hash($search->shift_entry,$cardnumber);
428
        my %borrower = ldap_entry_2_hash($search->shift_entry,$cardnumber);
429
428
        &update_local($patron->userid, $patron->password, $patron->borrowernumber, \%borrower);
430
        &update_local($patron->userid, $patron->password, $patron->borrowernumber, \%borrower);
429
431
430
        return 1;
432
        my $updated_patron = Koha::Patrons->find( $patron->borrowernumber );
433
        return $updated_patron;
431
    }
434
    }
432
    else {
435
    else {
433
        return 0;
436
        return;
434
    }
437
    }
435
438
436
}
439
}
Lines 440-464 sub updateborrower_ldap { Link Here
440
sub findcardnumber_ldap {
443
sub findcardnumber_ldap {
441
    my $cardnumber = shift;
444
    my $cardnumber = shift;
442
445
443
    return 0 unless ($config{replicate});
446
    return unless ($config{replicate});
444
447
445
    my @hosts = split(',', $prefhost);
448
    my @hosts = split(',', $prefhost);
446
    my $db = Net::LDAP->new(\@hosts, timeout => ($ldap->{timeout} || 30)) or return 0;
449
    my $db = Net::LDAP->new(\@hosts, timeout => ($ldap->{timeout} || 30)) or return;
447
450
448
    my $cardnumber_field = $mapping{cardnumber}->{is} or die ldapserver_error("mapping for 'cardnumber'");
451
    my $cardnumber_field = $mapping{cardnumber}->{is} or die ldapserver_error("mapping for 'cardnumber'");
449
    my $filter = Net::LDAP::Filter->new("$cardnumber_field=$cardnumber") or die "Failed to create new Net::LDAP::Filter";
452
    my $filter = Net::LDAP::Filter->new("$cardnumber_field=$cardnumber") or die "Failed to create new Net::LDAP::Filter";
450
    my $res = ($config{anonymous}) ? $db->bind : $db->bind($ldapname, password=>$ldappassword);
453
    my $res = ($config{anonymous}) ? $db->bind : $db->bind($ldapname, password=>$ldappassword);
451
    if ($res->code) {   # connection refused
454
    if ($res->code) {   # connection refused
452
        warn "LDAP bind failed as ldapuser " . ($ldapname || '[ANONYMOUS]') . ": " . description($res);
455
        warn "LDAP bind failed as ldapuser " . ($ldapname || '[ANONYMOUS]') . ": " . description($res);
453
        return 0;
456
        return;
454
    }
457
    }
455
    my $search = $db->search(
458
    my $search = $db->search(
456
        base => $base,
459
        base => $base,
457
        filter => $filter,
460
        filter => $filter,
458
    );
461
    );
459
462
460
    # Search error, return 0
463
    # Search error, return undef
461
    return (0, $search->error) if $search->code;
464
    return (undef, $search->error) if $search->code;
462
465
463
    my $count = $search->count;
466
    my $count = $search->count;
464
    if ($count == 1) {
467
    if ($count == 1) {
Lines 469-479 sub findcardnumber_ldap { Link Here
469
        my @chars = ( "A" .. "Z", "a" .. "z", 0 .. 9, qw(! @ $ % ^ & *) );
472
        my @chars = ( "A" .. "Z", "a" .. "z", 0 .. 9, qw(! @ $ % ^ & *) );
470
        $borrower{'password'} = join("", @chars[ map { rand @chars } ( 1 .. 30 ) ]) unless $borrower{'password'};
473
        $borrower{'password'} = join("", @chars[ map { rand @chars } ( 1 .. 30 ) ]) unless $borrower{'password'};
471
474
472
        my $patron = Koha::Patron->new( \%borrower )->store;
475
        try {
473
        return $patron->borrowernumber;
476
            my $patron = Koha::Patron->new( \%borrower )->store;
477
            $patron = Koha::Patrons->find( $patron->borrowernumber );
478
            return $patron;
479
        } catch {
480
            return (undef, $_->message);
481
        };
474
    }
482
    }
475
    else {
483
    else {
476
        return 0;
484
        return;
477
    }
485
    }
478
486
479
}
487
}
(-)a/circ/circulation.pl (-30 / +17 lines)
Lines 250-262 if ( $print eq 'yes' && $borrowernumber ne '' ) { Link Here
250
my $message;
250
my $message;
251
if ($findborrower) {
251
if ($findborrower) {
252
    my $patron = Koha::Patrons->find( { cardnumber => $findborrower } );
252
    my $patron = Koha::Patrons->find( { cardnumber => $findborrower } );
253
254
    # search cardnumber on LDAP server
255
    if ( C4::Context->config('useldapserver')
256
        and ( my $search_cardnumber = C4::Context->preference("SearchCardnumberWithLDAP") ) ne "never"
257
    ) {
258
        my $ldap_error;
259
        if ( $patron ) {
260
            ($patron, $ldap_error) = C4::Auth_with_ldap::updateborrower_ldap($patron) if $search_cardnumber eq "always";
261
        } else {
262
            ($patron, $ldap_error) = C4::Auth_with_ldap::findcardnumber_ldap($findborrower);
263
        }
264
        $template->param(ldap_error => $ldap_error) if $ldap_error;
265
    }
266
253
    if ( $patron ) {
267
    if ( $patron ) {
254
        $borrowernumber = $patron->borrowernumber;
268
        $borrowernumber = $patron->borrowernumber;
255
        # Update the user with LDAP if we need to
256
        if(C4::Context->config('useldapserver') and C4::Context->preference("SearchCardnumberWithLDAP") eq "always") {
257
            my ($result, $ldap_error) = C4::Auth_with_ldap::updateborrower_ldap($patron);
258
            $template->param(ldap_error => $ldap_error) if $ldap_error;
259
        }
260
    } else {
269
    } else {
261
        my $dt_params = { iDisplayLength => -1 };
270
        my $dt_params = { iDisplayLength => -1 };
262
        my $results = C4::Utils::DataTables::Members::search(
271
        my $results = C4::Utils::DataTables::Members::search(
Lines 269-303 if ($findborrower) { Link Here
269
        my $borrowers = $results->{patrons};
278
        my $borrowers = $results->{patrons};
270
        if ( scalar @$borrowers == 1 ) {
279
        if ( scalar @$borrowers == 1 ) {
271
            $borrowernumber = $borrowers->[0]->{borrowernumber};
280
            $borrowernumber = $borrowers->[0]->{borrowernumber};
272
            # Update the user with LDAP if we need to
273
            if(C4::Context->config('useldapserver') and C4::Context->preference("SearchCardnumberWithLDAP") eq "always") {
274
                my $patron_obj = Koha::Patrons->find( $borrowernumber );
275
                my ($result, $ldap_error) = C4::Auth_with_ldap::updateborrower_ldap($patron_obj);
276
                $template->param(ldap_error => $ldap_error) if $ldap_error;
277
            }
278
            $query->param( 'borrowernumber', $borrowernumber );
281
            $query->param( 'borrowernumber', $borrowernumber );
279
            $query->param( 'barcode',           '' );
282
            $query->param( 'barcode',           '' );
280
        } elsif ( @$borrowers == 0 ) {
281
            # Try to find a user using LDAP if we couldn't find it locally
282
            my $borrowernumber_ldap;
283
            my $ldap_error;
284
            if (C4::Context->config('useldapserver') and
285
                (C4::Context->preference("SearchCardnumberWithLDAP") eq "always" or C4::Context->preference("SearchCardnumberWithLDAP") eq "not_found")
286
            ) {
287
                ($borrowernumber_ldap, $ldap_error) = C4::Auth_with_ldap::findcardnumber_ldap($findborrower);
288
                $template->param(ldap_error => $ldap_error) if $ldap_error;
289
            }
290
291
            if ($borrowernumber_ldap) {
292
                $borrowernumber = $borrowernumber_ldap;
293
            }
294
            else {
295
                $template->param(ldap_error => $ldap_error) if $ldap_error;
296
                $query->param( 'findborrower', '' );
297
                $message = "'$findborrower'";
298
            }
299
        } elsif ( @$borrowers ) {
283
        } elsif ( @$borrowers ) {
300
            $template->param( borrowers => $borrowers );
284
            $template->param( borrowers => $borrowers );
285
        } else {
286
            $query->param( 'findborrower', '' );
287
            $message = "'$findborrower'";
301
        }
288
        }
302
    }
289
    }
303
}
290
}
(-)a/circ/request-article.pl (-4 / +19 lines)
Lines 49-58 my $biblio = Koha::Biblios->find($biblionumber); Link Here
49
output_and_exit( $cgi, $cookie, $template, 'unknown_biblio')
49
output_and_exit( $cgi, $cookie, $template, 'unknown_biblio')
50
    unless $biblio;
50
    unless $biblio;
51
51
52
my $patron =
52
my $patron = undef;
53
    $patron_id         ? Koha::Patrons->find($patron_id)
53
if ( $patron_id ) {
54
  : $patron_cardnumber ? Koha::Patrons->find( { cardnumber => $patron_cardnumber } )
54
    $patron = Koha::Patrons->find($patron_id);
55
  : undef;
55
} elsif ( $patron_cardnumber ) {
56
    $patron = Koha::Patrons->find( { cardnumber => $patron_cardnumber } );
57
58
    # search cardnumber on LDAP server
59
    if ( C4::Context->config('useldapserver')
60
        and ( my $search_cardnumber = C4::Context->preference("SearchCardnumberWithLDAP") ) ne "never"
61
    ) {
62
        my $ldap_error;
63
        if ( $patron ) {
64
            ($patron, $ldap_error) = C4::Auth_with_ldap::updateborrower_ldap($patron) if $search_cardnumber eq "always";
65
        } else {
66
            ($patron, $ldap_error) = C4::Auth_with_ldap::findcardnumber_ldap($patron_cardnumber);
67
        }
68
        $template->param(ldap_error => $ldap_error) if $ldap_error;
69
    }
70
}
56
71
57
if ( $action eq 'create' ) {
72
if ( $action eq 'create' ) {
58
    my $borrowernumber = $cgi->param('borrowernumber');
73
    my $borrowernumber = $cgi->param('borrowernumber');
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/tables/members_results.tt (+1 lines)
Lines 1-5 Link Here
1
[% USE To %]
1
[% USE To %]
2
{
2
{
3
    [% IF ldap_error %]"ldap_error": "[% ldap_error %]",[% END %]
3
    "sEcho": [% sEcho | html %],
4
    "sEcho": [% sEcho | html %],
4
    "iTotalRecords": [% iTotalRecords | html %],
5
    "iTotalRecords": [% iTotalRecords | html %],
5
    "iTotalDisplayRecords": [% iTotalDisplayRecords | html %],
6
    "iTotalDisplayRecords": [% iTotalDisplayRecords | html %],
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt (-1 / +1 lines)
Lines 479-485 Link Here
479
479
480
                    [% IF (ldap_error) %]
480
                    [% IF (ldap_error) %]
481
                        <div class="dialog alert">
481
                        <div class="dialog alert">
482
                            [% IF ( ldap_error ) %]<h4><span>An error occured while trying to contact the LDAP server : [% ldap_error | html %]</span></h4>[% END %]
482
                            An error occured while searching for cardnumber on the LDAP server : [% ldap_error | html %]
483
                        </div>
483
                        </div>
484
                    [% END %]
484
                    [% END %]
485
485
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/request-article.tt (+6 lines)
Lines 33-38 Link Here
33
        <div class="col-sm-10 col-sm-push-2">
33
        <div class="col-sm-10 col-sm-push-2">
34
            <main>
34
            <main>
35
35
36
                [% IF (ldap_error) %]
37
                    <div class="dialog alert">
38
                        An error occured while searching for cardnumber on the LDAP server : [% ldap_error | html %]
39
                    </div>
40
                [% END %]
41
36
                    <h1>Request article from <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblio.id | uri %]">[% INCLUDE 'biblio-title.inc' %]</a></h1>
42
                    <h1>Request article from <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblio.id | uri %]">[% INCLUDE 'biblio-title.inc' %]</a></h1>
37
                    [% IF no_patrons_found %]
43
                    [% IF no_patrons_found %]
38
                        <div class="dialog alert">
44
                        <div class="dialog alert">
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/common/patron_search.tt (+4 lines)
Lines 175-180 Link Here
175
                        'url': sSource,
175
                        'url': sSource,
176
                        'data': aoData,
176
                        'data': aoData,
177
                        'success': function(json){
177
                        'success': function(json){
178
                            if (json.ldap_error) {
179
                                $("#error").html(_("An error occured while searching for cardnumber on the LDAP server : %s").format(json.ldap_error));
180
                                $("#error").show();
181
                            }
178
                            fnCallback(json);
182
                            fnCallback(json);
179
                        }
183
                        }
180
                    });
184
                    });
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/members/member.tt (+7 lines)
Lines 88-93 Link Here
88
                </div>
88
                </div>
89
            [% END %]
89
            [% END %]
90
90
91
            <div id="error" class="dialog alert"></div>
92
91
            <table id="memberresultst">
93
            <table id="memberresultst">
92
              <thead>
94
              <thead>
93
                <tr>
95
                <tr>
Lines 234-239 Link Here
234
    [% Asset.js("js/members-menu.js") | $raw %]
236
    [% Asset.js("js/members-menu.js") | $raw %]
235
    <script>
237
    <script>
236
        $(document).ready(function() {
238
        $(document).ready(function() {
239
            $("#error").hide();
237
            $('#merge-patrons').prop('disabled', true);
240
            $('#merge-patrons').prop('disabled', true);
238
            $('#memberresultst').on('change', 'input.selection', function() {
241
            $('#memberresultst').on('change', 'input.selection', function() {
239
                if ( $('.selection:checked').length > 1 ) {
242
                if ( $('.selection:checked').length > 1 ) {
Lines 459-464 Link Here
459
                                document.location.href="/cgi-bin/koha/members/moremember.pl?borrowernumber="+borrowernumber;
462
                                document.location.href="/cgi-bin/koha/members/moremember.pl?borrowernumber="+borrowernumber;
460
                                return false;
463
                                return false;
461
                            }
464
                            }
465
                            if (json.ldap_error) {
466
                                $("#error").html(_("An error occured while searching for cardnumber on the LDAP server : %s").format(json.ldap_error));
467
                                $("#error").show();
468
                            }
462
                            fnCallback(json);
469
                            fnCallback(json);
463
                        }
470
                        }
464
                    });
471
                    });
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/members/tables/guarantor_search.tt (+1 lines)
Lines 3-8 Link Here
3
[% USE Branches %]
3
[% USE Branches %]
4
[% USE KohaDates %]
4
[% USE KohaDates %]
5
{
5
{
6
    [% IF ldap_error %]"ldap_error": "[% ldap_error %]",[% END %]
6
    "sEcho": [% sEcho | html %],
7
    "sEcho": [% sEcho | html %],
7
    "iTotalRecords": [% iTotalRecords | html %],
8
    "iTotalRecords": [% iTotalRecords | html %],
8
    "iTotalDisplayRecords": [% iTotalDisplayRecords | html %],
9
    "iTotalDisplayRecords": [% iTotalDisplayRecords | html %],
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/members/tables/members_results.tt (+1 lines)
Lines 4-9 Link Here
4
[% USE KohaDates %]
4
[% USE KohaDates %]
5
[% USE Price %]
5
[% USE Price %]
6
{
6
{
7
    [% IF ldap_error %]"ldap_error": "[% ldap_error %]",[% END %]
7
    "sEcho": [% sEcho | html %],
8
    "sEcho": [% sEcho | html %],
8
    "iTotalRecords": [% iTotalRecords | html %],
9
    "iTotalRecords": [% iTotalRecords | html %],
9
    "iTotalDisplayRecords": [% iTotalDisplayRecords | html %],
10
    "iTotalDisplayRecords": [% iTotalDisplayRecords | html %],
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/patroncards/tables/members_results.tt (+1 lines)
Lines 1-5 Link Here
1
[% USE To %]
1
[% USE To %]
2
{
2
{
3
    [% IF ldap_error %]"ldap_error": "[% ldap_error %]",[% END %]
3
    "sEcho": [% sEcho | html %],
4
    "sEcho": [% sEcho | html %],
4
    "iTotalRecords": [% iTotalRecords | html %],
5
    "iTotalRecords": [% iTotalRecords | html %],
5
    "iTotalDisplayRecords": [% iTotalDisplayRecords | html %],
6
    "iTotalDisplayRecords": [% iTotalDisplayRecords | html %],
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt (+6 lines)
Lines 67-72 Link Here
67
                </div>
67
                </div>
68
            [% END %]
68
            [% END %]
69
69
70
            [% IF (ldap_error) %]
71
                <div class="dialog alert">
72
                    An error occured while searching for cardnumber on the LDAP server : [% ldap_error | html %]
73
                </div>
74
            [% END %]
75
70
            [% UNLESS ( multi_hold ) %]
76
            [% UNLESS ( multi_hold ) %]
71
                <h1>Place a hold on [% INCLUDE 'biblio-default-view.inc' %][% INCLUDE 'biblio-title.inc' %]</a></h1>
77
                <h1>Place a hold on [% INCLUDE 'biblio-default-view.inc' %][% INCLUDE 'biblio-title.inc' %]</a></h1>
72
            [% ELSE %]
78
            [% ELSE %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/tables/members_results.tt (+1 lines)
Lines 1-5 Link Here
1
[% USE To %]
1
[% USE To %]
2
{
2
{
3
    [% IF ldap_error %]"ldap_error": "[% ldap_error %]",[% END %]
3
    "sEcho": [% sEcho | html %],
4
    "sEcho": [% sEcho | html %],
4
    "iTotalRecords": [% iTotalRecords | html %],
5
    "iTotalRecords": [% iTotalRecords | html %],
5
    "iTotalDisplayRecords": [% iTotalDisplayRecords | html %],
6
    "iTotalDisplayRecords": [% iTotalDisplayRecords | html %],
(-)a/members/member.pl (+14 lines)
Lines 53-58 if ( $quicksearch and $searchmember ) { Link Here
53
        $branchcode = $userenv->{'branch'};
53
        $branchcode = $userenv->{'branch'};
54
    }
54
    }
55
    my $patron = Koha::Patrons->find( { cardnumber => $searchmember } );
55
    my $patron = Koha::Patrons->find( { cardnumber => $searchmember } );
56
57
    # search cardnumber on LDAP server
58
    if ( C4::Context->config('useldapserver')
59
        and ( my $search_cardnumber = C4::Context->preference("SearchCardnumberWithLDAP") ) ne "never"
60
    ) {
61
        my $ldap_error;
62
        if ( $patron ) {
63
            ($patron, $ldap_error) = C4::Auth_with_ldap::updateborrower_ldap($patron) if $search_cardnumber eq "always";
64
        } else {
65
            ($patron, $ldap_error) = C4::Auth_with_ldap::findcardnumber_ldap($searchmember);
66
        }
67
        $template->param(ldap_error => $ldap_error) if $ldap_error;
68
    }
69
56
    if (
70
    if (
57
        $patron
71
        $patron
58
        and (  ( $branchcode and $patron->branchcode eq $branchcode )
72
        and (  ( $branchcode and $patron->branchcode eq $branchcode )
(-)a/reserve/request.pl (+14 lines)
Lines 119-124 if ( $action eq 'move' ) { Link Here
119
119
120
if ($findborrower) {
120
if ($findborrower) {
121
    my $patron = Koha::Patrons->find( { cardnumber => $findborrower } );
121
    my $patron = Koha::Patrons->find( { cardnumber => $findborrower } );
122
123
    # search cardnumber on LDAP server
124
    if ( C4::Context->config('useldapserver')
125
        and ( my $search_cardnumber = C4::Context->preference("SearchCardnumberWithLDAP") ) ne "never"
126
    ) {
127
        my $ldap_error;
128
        if ( $patron ) {
129
            ($patron, $ldap_error) = C4::Auth_with_ldap::updateborrower_ldap($patron) if $search_cardnumber eq "always";
130
        } else {
131
            ($patron, $ldap_error) = C4::Auth_with_ldap::findcardnumber_ldap($findborrower);
132
        }
133
        $template->param(ldap_error => $ldap_error) if $ldap_error;
134
    }
135
122
    if ( $patron ) {
136
    if ( $patron ) {
123
        $borrowernumber_hold = $patron->borrowernumber;
137
        $borrowernumber_hold = $patron->borrowernumber;
124
    } else {
138
    } else {
(-)a/svc/members/search (-1 / +14 lines)
Lines 65-70 if ( $searchmember Link Here
65
    and $searchfieldstype eq 'standard' )
65
    and $searchfieldstype eq 'standard' )
66
{
66
{
67
    my $member = Koha::Patrons->find( { cardnumber => $searchmember } );
67
    my $member = Koha::Patrons->find( { cardnumber => $searchmember } );
68
69
    # search cardnumber on LDAP server
70
    if ( C4::Context->config('useldapserver')
71
        and ( my $search_cardnumber = C4::Context->preference("SearchCardnumberWithLDAP") ) ne "never"
72
    ) {
73
        my $ldap_error;
74
        if ( $member ) {
75
            ($member, $ldap_error) = C4::Auth_with_ldap::updateborrower_ldap($member) if $search_cardnumber eq "always";
76
        } else {
77
            ($member, $ldap_error) = C4::Auth_with_ldap::findcardnumber_ldap($searchmember);
78
        }
79
        $template->param(ldap_error => $ldap_error) if $ldap_error;
80
    }
81
68
    $results = {
82
    $results = {
69
        iTotalRecords        => 1,
83
        iTotalRecords        => 1,
70
        iTotalDisplayRecords => 1,
84
        iTotalDisplayRecords => 1,
71
- 

Return to bug 11808