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

(-)a/t/db_dependent/Utils/Datatables_Members.t (-7 / +62 lines)
Lines 17-23 Link Here
17
17
18
use Modern::Perl;
18
use Modern::Perl;
19
19
20
use Test::More tests => 50;
20
use Test::More tests => 51;
21
21
22
use C4::Context;
22
use C4::Context;
23
use C4::Members;
23
use C4::Members;
Lines 57-63 my $john_doe = $builder->build({ Link Here
57
            surname      => 'Doe',
57
            surname      => 'Doe',
58
            branchcode   => $branchcode,
58
            branchcode   => $branchcode,
59
            dateofbirth  => '1983-03-01',
59
            dateofbirth  => '1983-03-01',
60
            userid       => 'john.doe'
60
            userid       => 'john.doe',
61
            flags        => 0,
61
        },
62
        },
62
});
63
});
63
64
Lines 69-75 my $john_smith = $builder->build({ Link Here
69
            surname      => 'Smith',
70
            surname      => 'Smith',
70
            branchcode   => $branchcode,
71
            branchcode   => $branchcode,
71
            dateofbirth  => '1982-02-01',
72
            dateofbirth  => '1982-02-01',
72
            userid       => 'john.smith'
73
            userid       => 'john.smith',
74
            flags        => 0,
73
        },
75
        },
74
});
76
});
75
77
Lines 81-87 my $jane_doe = $builder->build({ Link Here
81
            surname      => 'Doe',
83
            surname      => 'Doe',
82
            branchcode   => $branchcode,
84
            branchcode   => $branchcode,
83
            dateofbirth  => '1983-03-01',
85
            dateofbirth  => '1983-03-01',
84
            userid       => 'jane.doe'
86
            userid       => 'jane.doe',
87
            flags        => 0,
85
        },
88
        },
86
});
89
});
87
my $jeanpaul_dupont = $builder->build({
90
my $jeanpaul_dupont = $builder->build({
Lines 92-98 my $jeanpaul_dupont = $builder->build({ Link Here
92
            surname      => 'Dupont',
95
            surname      => 'Dupont',
93
            branchcode   => $branchcode,
96
            branchcode   => $branchcode,
94
            dateofbirth  => '1982-02-01',
97
            dateofbirth  => '1982-02-01',
95
            userid       => 'jeanpaul.dupont'
98
            userid       => 'jeanpaul.dupont',
99
            flags        => 0,
96
        },
100
        },
97
});
101
});
98
my $dupont_brown = $builder->build({
102
my $dupont_brown = $builder->build({
Lines 103-109 my $dupont_brown = $builder->build({ Link Here
103
            surname      => 'Brown',
107
            surname      => 'Brown',
104
            branchcode   => $branchcode,
108
            branchcode   => $branchcode,
105
            dateofbirth  => '1979-01-01',
109
            dateofbirth  => '1979-01-01',
106
            userid       => 'dupont.brown'
110
            userid       => 'dupont.brown',
111
            flags        => 0,
107
        },
112
        },
108
});
113
});
109
114
Lines 461-465 subtest 'ExtendedPatronAttributes' => sub { Link Here
461
        "'Dupont' is contained in 2 surnames and a patron attribute. Patron attribute one should not be displayed if searching in specific fields (Bug 18094)");
466
        "'Dupont' is contained in 2 surnames and a patron attribute. Patron attribute one should not be displayed if searching in specific fields (Bug 18094)");
462
};
467
};
463
468
469
subtest 'Search with permissions' => sub {
470
    plan tests => 2;
471
472
    my $superlibrarian = $builder->build_object(
473
        {
474
            class => 'Koha::Patrons',
475
            value => { branchcode => $branchcode, flags => 1 }
476
        }
477
    );
478
    my $librarian_with_full_permission = $builder->build_object(
479
        {
480
            class => 'Koha::Patrons',
481
            value => { branchcode => $branchcode, flags => 4100 }
482
        }
483
    );    # 4100 = 4096 (2^12 suggestions) + 4 (2^2 catalogue)
484
    my $librarian_with_subpermission = $builder->build_object(
485
        { class => 'Koha::Patrons', value => { branchcode => $branchcode } } );
486
    C4::Context->dbh->do(
487
        q|INSERT INTO user_permissions(borrowernumber, module_bit, code) VALUES(?,?,?)|,
488
        undef,
489
        $librarian_with_subpermission->borrowernumber,
490
        12,
491
        'suggestions_manage'
492
    );
493
494
    my $search_results = C4::Utils::DataTables::Members::search(
495
        {
496
            searchmember     => "",
497
            searchfieldstype => 'standard',
498
            searchtype       => 'contain',
499
            branchcode       => $branchcode,
500
            has_permission   => {
501
                permission    => 'suggestions',
502
                subpermission => 'suggestions_manage'
503
            },
504
            dt_params => { iDisplayLength => 3, iDisplayStart => 0 },
505
        }
506
    );
507
    is( $search_results->{iTotalDisplayRecords},
508
        3, "We find 3 patrons with suggestions_manage permission" );
509
    is_deeply(
510
        [ map { $_->{borrowernumber} } @{ $search_results->{patrons} } ],
511
        [
512
            $superlibrarian->borrowernumber,
513
            $librarian_with_full_permission->borrowernumber,
514
            $librarian_with_subpermission->borrowernumber
515
        ],
516
        'We got the 3 patrons we expected'
517
    );
518
};
519
464
# End
520
# End
465
$schema->storage->txn_rollback;
521
$schema->storage->txn_rollback;
466
- 

Return to bug 24964