Lines 1306-1314
subtest 'search_patrons_to_anonymise' => sub {
Link Here
|
1306 |
t::lib::Mocks::mock_preference('IndependentBranches', 0); |
1306 |
t::lib::Mocks::mock_preference('IndependentBranches', 0); |
1307 |
}; |
1307 |
}; |
1308 |
|
1308 |
|
1309 |
subtest 'libraries_where_can_see_patrons + libraries_where_can_see_things + can_see_patron_infos + search_limited' => |
1309 |
subtest |
1310 |
sub { |
1310 |
'libraries_where_can_see_patrons + libraries_where_can_see_things + can_see_patron_infos + search_limited+ can_see_patrons_from + can_edit_items_from' |
1311 |
plan tests => 4; |
1311 |
=> sub { |
|
|
1312 |
plan tests => 6; |
1312 |
|
1313 |
|
1313 |
# group1 |
1314 |
# group1 |
1314 |
# + library_11 |
1315 |
# + library_11 |
Lines 1316-1323
subtest 'libraries_where_can_see_patrons + libraries_where_can_see_things + can_
Link Here
|
1316 |
# group2 |
1317 |
# group2 |
1317 |
# + library21 |
1318 |
# + library21 |
1318 |
$nb_of_patrons = Koha::Patrons->search->count; |
1319 |
$nb_of_patrons = Koha::Patrons->search->count; |
1319 |
my $group_1 = Koha::Library::Group->new( { title => 'TEST Group 1', ft_hide_patron_info => 1 } )->store; |
1320 |
my $group_1 = |
1320 |
my $group_2 = Koha::Library::Group->new( { title => 'TEST Group 2', ft_hide_patron_info => 1 } )->store; |
1321 |
Koha::Library::Group->new( { title => 'TEST Group 1', ft_hide_patron_info => 1 } ) |
|
|
1322 |
->store; |
1323 |
my $group_2 = |
1324 |
Koha::Library::Group->new( { title => 'TEST Group 2', ft_hide_patron_info => 1 } ) |
1325 |
->store; |
1321 |
my $library_11 = $builder->build( { source => 'Branch' } ); |
1326 |
my $library_11 = $builder->build( { source => 'Branch' } ); |
1322 |
my $library_12 = $builder->build( { source => 'Branch' } ); |
1327 |
my $library_12 = $builder->build( { source => 'Branch' } ); |
1323 |
my $library_21 = $builder->build( { source => 'Branch' } ); |
1328 |
my $library_21 = $builder->build( { source => 'Branch' } ); |
Lines 1329-1350
subtest 'libraries_where_can_see_patrons + libraries_where_can_see_things + can_
Link Here
|
1329 |
Koha::Library::Group->new( { branchcode => $library_21->branchcode, parent_id => $group_2->id } )->store; |
1334 |
Koha::Library::Group->new( { branchcode => $library_21->branchcode, parent_id => $group_2->id } )->store; |
1330 |
|
1335 |
|
1331 |
my $sth = |
1336 |
my $sth = |
1332 |
C4::Context->dbh->prepare(q|INSERT INTO user_permissions( borrowernumber, module_bit, code ) VALUES (?, 4, ?)|) |
1337 |
C4::Context->dbh->prepare(q|INSERT INTO user_permissions( borrowernumber, module_bit, code ) VALUES (?, ?, ?)|) |
1333 |
; # 4 for borrowers |
1338 |
; |
1334 |
# 2 patrons from library_11 (group1) |
1339 |
# 2 patrons from library_11 (group1) |
1335 |
# patron_11_1 see patron's infos from outside its group |
1340 |
# patron_11_1 see patron's infos from outside its group |
1336 |
# Setting flags => undef to not be considered as superlibrarian |
1341 |
# Setting flags => undef to not be considered as superlibrarian |
1337 |
my $patron_11_1 = $builder->build( |
1342 |
my $patron_11_1 = $builder->build( |
1338 |
{ source => 'Borrower', value => { branchcode => $library_11->branchcode, flags => undef, } } ); |
1343 |
{ source => 'Borrower', value => { branchcode => $library_11->branchcode, flags => undef, } } ); |
1339 |
$patron_11_1 = Koha::Patrons->find( $patron_11_1->{borrowernumber} ); |
1344 |
$patron_11_1 = Koha::Patrons->find( $patron_11_1->{borrowernumber} ); |
1340 |
$sth->execute( $patron_11_1->borrowernumber, 'edit_borrowers' ); |
1345 |
$sth->execute( $patron_11_1->borrowernumber, 4, 'edit_borrowers' ); |
1341 |
$sth->execute( $patron_11_1->borrowernumber, 'view_borrower_infos_from_any_libraries' ); |
1346 |
$sth->execute( $patron_11_1->borrowernumber, 4,'view_borrower_infos_from_any_libraries' ); |
1342 |
|
1347 |
|
1343 |
# patron_11_2 can only see patron's info from its group |
1348 |
# patron_11_2 can only see patron's info from its group |
1344 |
my $patron_11_2 = $builder->build( |
1349 |
my $patron_11_2 = $builder->build( |
1345 |
{ source => 'Borrower', value => { branchcode => $library_11->branchcode, flags => undef, } } ); |
1350 |
{ source => 'Borrower', value => { branchcode => $library_11->branchcode, flags => undef, } } ); |
1346 |
$patron_11_2 = Koha::Patrons->find( $patron_11_2->{borrowernumber} ); |
1351 |
$patron_11_2 = Koha::Patrons->find( $patron_11_2->{borrowernumber} ); |
1347 |
$sth->execute( $patron_11_2->borrowernumber, 'edit_borrowers' ); |
1352 |
$sth->execute( $patron_11_2->borrowernumber, 4, 'edit_borrowers' ); |
|
|
1353 |
$sth->execute( $patron_11_2->borrowernumber, 9, 'edit_items' ); |
1348 |
|
1354 |
|
1349 |
# 1 patron from library_12 (group1) |
1355 |
# 1 patron from library_12 (group1) |
1350 |
my $patron_12 = $builder->build( |
1356 |
my $patron_12 = $builder->build( |
Lines 1355-1361
subtest 'libraries_where_can_see_patrons + libraries_where_can_see_things + can_
Link Here
|
1355 |
my $patron_21 = $builder->build( |
1361 |
my $patron_21 = $builder->build( |
1356 |
{ source => 'Borrower', value => { branchcode => $library_21->branchcode, flags => undef, } } ); |
1362 |
{ source => 'Borrower', value => { branchcode => $library_21->branchcode, flags => undef, } } ); |
1357 |
$patron_21 = Koha::Patrons->find( $patron_21->{borrowernumber} ); |
1363 |
$patron_21 = Koha::Patrons->find( $patron_21->{borrowernumber} ); |
1358 |
$sth->execute( $patron_21->borrowernumber, 'edit_borrowers' ); |
1364 |
$sth->execute( $patron_21->borrowernumber, 4, 'edit_borrowers' ); |
1359 |
|
1365 |
|
1360 |
# Pfiou, we can start now! |
1366 |
# Pfiou, we can start now! |
1361 |
subtest 'libraries_where_can_see_things' => sub { |
1367 |
subtest 'libraries_where_can_see_things' => sub { |
Lines 1378-1383
subtest 'libraries_where_can_see_patrons + libraries_where_can_see_things + can_
Link Here
|
1378 |
); |
1384 |
); |
1379 |
}; |
1385 |
}; |
1380 |
|
1386 |
|
|
|
1387 |
subtest 'can_see_patrons_from' => sub { |
1388 |
plan tests => 2; |
1389 |
ok( $patron_11_2->can_see_patrons_from( $library_11->branchcode ), "We can see a patron from in our group" ); |
1390 |
ok( |
1391 |
!$patron_11_2->can_see_patrons_from( $library_21->branchcode ), |
1392 |
"We cannot see a patron from outside our group without permissions" |
1393 |
); |
1394 |
}; |
1395 |
|
1396 |
subtest 'can_edit_items_from' => sub { |
1397 |
plan tests => 4; |
1398 |
ok( $patron_11_2->can_edit_items_from( $library_11->branchcode ), "We can edit an item from in our group" ); |
1399 |
ok( |
1400 |
$patron_11_2->can_edit_items_from( $library_21->branchcode ), |
1401 |
"We can edit an item from outside our group as the group does not limit item editing" |
1402 |
); |
1403 |
$group_2->ft_limit_item_editing(1)->store(); |
1404 |
|
1405 |
$patron_11_2 = Koha::Patrons->find( $patron_11_2->borrowernumber ); |
1406 |
#FIXME We refetch the patron because library lists are cached in an extra hash key |
1407 |
# in libraries_where_can_see_things |
1408 |
|
1409 |
ok( |
1410 |
!$patron_11_2->can_edit_items_from( $library_21->branchcode ), |
1411 |
"We can not edit an item from outside our group as the group does limit item editing" |
1412 |
); |
1413 |
|
1414 |
$sth->execute( $patron_11_2->borrowernumber, 9, 'edit_any_item' ); |
1415 |
$patron_11_2 = Koha::Patrons->find( $patron_11_2->borrowernumber ); |
1416 |
|
1417 |
ok( |
1418 |
$patron_11_2->can_edit_items_from( $library_21->branchcode ), |
1419 |
"We can edit an item from outside our group as we have permission" |
1420 |
); |
1421 |
|
1422 |
}; |
1423 |
|
1381 |
subtest 'libraries_where_can_see_patrons' => sub { |
1424 |
subtest 'libraries_where_can_see_patrons' => sub { |
1382 |
plan tests => 3; |
1425 |
plan tests => 3; |
1383 |
|
1426 |
|
1384 |
- |
|
|