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

(-)a/t/db_dependent/Koha/Patrons.t (-12 / +54 lines)
Lines 1284-1292 subtest 'search_patrons_to_anonymise' => sub { Link Here
1284
    t::lib::Mocks::mock_preference('IndependentBranches', 0);
1284
    t::lib::Mocks::mock_preference('IndependentBranches', 0);
1285
};
1285
};
1286
1286
1287
subtest 'libraries_where_can_see_patrons + libraries_where_can_see_things + can_see_patron_infos + search_limited' =>
1287
subtest
1288
    sub {
1288
    'libraries_where_can_see_patrons + libraries_where_can_see_things + can_see_patron_infos + search_limited+ can_see_patrons_from + can_edit_items_from'
1289
    plan tests => 4;
1289
    => sub {
1290
    plan tests => 6;
1290
1291
1291
    # group1
1292
    # group1
1292
    #   + library_11
1293
    #   + library_11
Lines 1294-1301 subtest 'libraries_where_can_see_patrons + libraries_where_can_see_things + can_ Link Here
1294
    # group2
1295
    # group2
1295
    #   + library21
1296
    #   + library21
1296
    $nb_of_patrons = Koha::Patrons->search->count;
1297
    $nb_of_patrons = Koha::Patrons->search->count;
1297
    my $group_1    = Koha::Library::Group->new( { title => 'TEST Group 1', ft_hide_patron_info => 1 } )->store;
1298
    my $group_1 =
1298
    my $group_2    = Koha::Library::Group->new( { title => 'TEST Group 2', ft_hide_patron_info => 1 } )->store;
1299
        Koha::Library::Group->new( { title => 'TEST Group 1', ft_hide_patron_info => 1 } )
1300
        ->store;
1301
    my $group_2 =
1302
        Koha::Library::Group->new( { title => 'TEST Group 2', ft_hide_patron_info => 1 } )
1303
        ->store;
1299
    my $library_11 = $builder->build( { source => 'Branch' } );
1304
    my $library_11 = $builder->build( { source => 'Branch' } );
1300
    my $library_12 = $builder->build( { source => 'Branch' } );
1305
    my $library_12 = $builder->build( { source => 'Branch' } );
1301
    my $library_21 = $builder->build( { source => 'Branch' } );
1306
    my $library_21 = $builder->build( { source => 'Branch' } );
Lines 1307-1328 subtest 'libraries_where_can_see_patrons + libraries_where_can_see_things + can_ Link Here
1307
    Koha::Library::Group->new( { branchcode => $library_21->branchcode, parent_id => $group_2->id } )->store;
1312
    Koha::Library::Group->new( { branchcode => $library_21->branchcode, parent_id => $group_2->id } )->store;
1308
1313
1309
    my $sth =
1314
    my $sth =
1310
        C4::Context->dbh->prepare(q|INSERT INTO user_permissions( borrowernumber, module_bit, code ) VALUES (?, 4, ?)|)
1315
        C4::Context->dbh->prepare(q|INSERT INTO user_permissions( borrowernumber, module_bit, code ) VALUES (?, ?, ?)|)
1311
        ;    # 4 for borrowers
1316
        ;
1312
             # 2 patrons from library_11 (group1)
1317
             # 2 patrons from library_11 (group1)
1313
             # patron_11_1 see patron's infos from outside its group
1318
             # patron_11_1 see patron's infos from outside its group
1314
             # Setting flags => undef to not be considered as superlibrarian
1319
             # Setting flags => undef to not be considered as superlibrarian
1315
    my $patron_11_1 = $builder->build(
1320
    my $patron_11_1 = $builder->build(
1316
        { source => 'Borrower', value => { branchcode => $library_11->branchcode, flags => undef, } } );
1321
        { source => 'Borrower', value => { branchcode => $library_11->branchcode, flags => undef, } } );
1317
    $patron_11_1 = Koha::Patrons->find( $patron_11_1->{borrowernumber} );
1322
    $patron_11_1 = Koha::Patrons->find( $patron_11_1->{borrowernumber} );
1318
    $sth->execute( $patron_11_1->borrowernumber, 'edit_borrowers' );
1323
    $sth->execute( $patron_11_1->borrowernumber, 4, 'edit_borrowers' );
1319
    $sth->execute( $patron_11_1->borrowernumber, 'view_borrower_infos_from_any_libraries' );
1324
    $sth->execute( $patron_11_1->borrowernumber, 4,'view_borrower_infos_from_any_libraries' );
1320
1325
1321
    # patron_11_2 can only see patron's info from its group
1326
    # patron_11_2 can only see patron's info from its group
1322
    my $patron_11_2 = $builder->build(
1327
    my $patron_11_2 = $builder->build(
1323
        { source => 'Borrower', value => { branchcode => $library_11->branchcode, flags => undef, } } );
1328
        { source => 'Borrower', value => { branchcode => $library_11->branchcode, flags => undef, } } );
1324
    $patron_11_2 = Koha::Patrons->find( $patron_11_2->{borrowernumber} );
1329
    $patron_11_2 = Koha::Patrons->find( $patron_11_2->{borrowernumber} );
1325
    $sth->execute( $patron_11_2->borrowernumber, 'edit_borrowers' );
1330
    $sth->execute( $patron_11_2->borrowernumber, 4, 'edit_borrowers' );
1331
    $sth->execute( $patron_11_2->borrowernumber, 9, 'edit_items' );
1326
1332
1327
    # 1 patron from library_12 (group1)
1333
    # 1 patron from library_12 (group1)
1328
    my $patron_12 = $builder->build(
1334
    my $patron_12 = $builder->build(
Lines 1333-1339 subtest 'libraries_where_can_see_patrons + libraries_where_can_see_things + can_ Link Here
1333
    my $patron_21 = $builder->build(
1339
    my $patron_21 = $builder->build(
1334
        { source => 'Borrower', value => { branchcode => $library_21->branchcode, flags => undef, } } );
1340
        { source => 'Borrower', value => { branchcode => $library_21->branchcode, flags => undef, } } );
1335
    $patron_21 = Koha::Patrons->find( $patron_21->{borrowernumber} );
1341
    $patron_21 = Koha::Patrons->find( $patron_21->{borrowernumber} );
1336
    $sth->execute( $patron_21->borrowernumber, 'edit_borrowers' );
1342
    $sth->execute( $patron_21->borrowernumber, 4, 'edit_borrowers' );
1337
1343
1338
    # Pfiou, we can start now!
1344
    # Pfiou, we can start now!
1339
    subtest 'libraries_where_can_see_things' => sub {
1345
    subtest 'libraries_where_can_see_things' => sub {
Lines 1356-1361 subtest 'libraries_where_can_see_patrons + libraries_where_can_see_things + can_ Link Here
1356
        );
1362
        );
1357
    };
1363
    };
1358
1364
1365
    subtest 'can_see_patrons_from' => sub {
1366
        plan tests => 2;
1367
        ok( $patron_11_2->can_see_patrons_from( $library_11->branchcode ), "We can see a patron from in our group" );
1368
        ok(
1369
            !$patron_11_2->can_see_patrons_from( $library_21->branchcode ),
1370
            "We cannot see a patron from outside our group without permissions"
1371
        );
1372
    };
1373
1374
    subtest 'can_edit_items_from' => sub {
1375
        plan tests => 4;
1376
        ok( $patron_11_2->can_edit_items_from( $library_11->branchcode ), "We can edit an item from in our group" );
1377
        ok(
1378
            $patron_11_2->can_edit_items_from( $library_21->branchcode ),
1379
            "We can edit an item from outside our group as the group does not limit item editing"
1380
        );
1381
        $group_2->ft_limit_item_editing(1)->store();
1382
1383
        $patron_11_2  = Koha::Patrons->find( $patron_11_2->borrowernumber );
1384
        #FIXME We refetch the patron because library lists are cached in an extra hash key
1385
        # in libraries_where_can_see_things
1386
1387
        ok(
1388
            !$patron_11_2->can_edit_items_from( $library_21->branchcode ),
1389
            "We can not edit an item from outside our group as the group does limit item editing"
1390
        );
1391
1392
        $sth->execute( $patron_11_2->borrowernumber, 9, 'edit_any_item' );
1393
        $patron_11_2  = Koha::Patrons->find( $patron_11_2->borrowernumber );
1394
1395
        ok(
1396
            $patron_11_2->can_edit_items_from( $library_21->branchcode ),
1397
            "We can edit an item from outside our group as we have permission"
1398
        );
1399
1400
    };
1401
1359
    subtest 'libraries_where_can_see_patrons' => sub {
1402
    subtest 'libraries_where_can_see_patrons' => sub {
1360
        plan tests => 3;
1403
        plan tests => 3;
1361
1404
1362
- 

Return to bug 37392