Lines 222-228
subtest 'update() tests' => sub {
Link Here
|
222 |
$schema->storage->txn_rollback; |
222 |
$schema->storage->txn_rollback; |
223 |
|
223 |
|
224 |
subtest 'librarian access tests' => sub { |
224 |
subtest 'librarian access tests' => sub { |
225 |
plan tests => 40; |
225 |
plan tests => 42; |
226 |
|
226 |
|
227 |
$schema->storage->txn_begin; |
227 |
$schema->storage->txn_begin; |
228 |
|
228 |
|
Lines 340-345
subtest 'update() tests' => sub {
Link Here
|
340 |
$newpatron->{cardnumber} = $superlibrarian->cardnumber; |
340 |
$newpatron->{cardnumber} = $superlibrarian->cardnumber; |
341 |
$newpatron->{userid} = $superlibrarian->userid; |
341 |
$newpatron->{userid} = $superlibrarian->userid; |
342 |
$newpatron->{email} = 'nosense@no.no'; |
342 |
$newpatron->{email} = 'nosense@no.no'; |
|
|
343 |
# delete RO attributes |
344 |
delete $newpatron->{patron_id}; |
345 |
delete $newpatron->{restricted}; |
346 |
delete $newpatron->{anonymized}; |
343 |
|
347 |
|
344 |
# attempt to update |
348 |
# attempt to update |
345 |
$authorized_patron->flags( 2**4 )->store; # borrowers flag = 4 |
349 |
$authorized_patron->flags( 2**4 )->store; # borrowers flag = 4 |
Lines 350-357
subtest 'update() tests' => sub {
Link Here
|
350 |
# attempt to unset |
354 |
# attempt to unset |
351 |
$newpatron->{email} = undef; |
355 |
$newpatron->{email} = undef; |
352 |
$t->put_ok( "//$userid:$password@/api/v1/patrons/" . $superlibrarian->borrowernumber => json => $newpatron ) |
356 |
$t->put_ok( "//$userid:$password@/api/v1/patrons/" . $superlibrarian->borrowernumber => json => $newpatron ) |
353 |
->status_is(403, "Non-superlibrarian user change of superlibrarian email forbidden") |
357 |
->status_is(403, "Non-superlibrarian user change of superlibrarian email to undefined forbidden") |
354 |
->json_is( { error => "Not enough privileges to change a superlibrarian's email to undefined" } ); |
358 |
->json_is( { error => "Not enough privileges to change a superlibrarian's email" } ); |
355 |
|
359 |
|
356 |
$newpatron->{email} = $superlibrarian->email; |
360 |
$newpatron->{email} = $superlibrarian->email; |
357 |
$newpatron->{secondary_email} = 'nonsense@no.no'; |
361 |
$newpatron->{secondary_email} = 'nonsense@no.no'; |
Lines 359-371
subtest 'update() tests' => sub {
Link Here
|
359 |
# attempt to update |
363 |
# attempt to update |
360 |
$t->put_ok( "//$userid:$password@/api/v1/patrons/" . $superlibrarian->borrowernumber => json => $newpatron ) |
364 |
$t->put_ok( "//$userid:$password@/api/v1/patrons/" . $superlibrarian->borrowernumber => json => $newpatron ) |
361 |
->status_is(403, "Non-superlibrarian user change of superlibrarian secondary_email forbidden") |
365 |
->status_is(403, "Non-superlibrarian user change of superlibrarian secondary_email forbidden") |
362 |
->json_is( { error => "Not enough privileges to change a superlibrarian's secondary_email" } ); |
366 |
->json_is( { error => "Not enough privileges to change a superlibrarian's email" } ); |
363 |
|
367 |
|
364 |
# attempt to unset |
368 |
# attempt to unset |
365 |
$newpatron->{secondary_email} = undef; |
369 |
$newpatron->{secondary_email} = undef; |
366 |
$t->put_ok( "//$userid:$password@/api/v1/patrons/" . $superlibrarian->borrowernumber => json => $newpatron ) |
370 |
$t->put_ok( "//$userid:$password@/api/v1/patrons/" . $superlibrarian->borrowernumber => json => $newpatron ) |
367 |
->status_is(403, "Non-superlibrarian user change of superlibrarian secondary_email forbidden") |
371 |
->status_is(403, "Non-superlibrarian user change of superlibrarian secondary_email to undefined forbidden") |
368 |
->json_is( { error => "Not enough privileges to change a superlibrarian's secondary_email to undefined" } ); |
372 |
->json_is( { error => "Not enough privileges to change a superlibrarian's email" } ); |
369 |
|
373 |
|
370 |
$newpatron->{secondary_email} = $superlibrarian->emailpro; |
374 |
$newpatron->{secondary_email} = $superlibrarian->emailpro; |
371 |
$newpatron->{altaddress_email} = 'nonsense@no.no'; |
375 |
$newpatron->{altaddress_email} = 'nonsense@no.no'; |
Lines 373-385
subtest 'update() tests' => sub {
Link Here
|
373 |
# attempt to update |
377 |
# attempt to update |
374 |
$t->put_ok( "//$userid:$password@/api/v1/patrons/" . $superlibrarian->borrowernumber => json => $newpatron ) |
378 |
$t->put_ok( "//$userid:$password@/api/v1/patrons/" . $superlibrarian->borrowernumber => json => $newpatron ) |
375 |
->status_is(403, "Non-superlibrarian user change of superlibrarian altaddress_email forbidden") |
379 |
->status_is(403, "Non-superlibrarian user change of superlibrarian altaddress_email forbidden") |
376 |
->json_is( { error => "Not enough privileges to change a superlibrarian's altaddress_email" } ); |
380 |
->json_is( { error => "Not enough privileges to change a superlibrarian's email" } ); |
377 |
|
381 |
|
378 |
# attempt to unset |
382 |
# attempt to unset |
379 |
$newpatron->{altaddress_email} = undef; |
383 |
$newpatron->{altaddress_email} = undef; |
380 |
$t->put_ok( "//$userid:$password@/api/v1/patrons/" . $superlibrarian->borrowernumber => json => $newpatron ) |
384 |
$t->put_ok( "//$userid:$password@/api/v1/patrons/" . $superlibrarian->borrowernumber => json => $newpatron ) |
381 |
->status_is(403, "Non-superlibrarian user change of superlibrarian altaddress_email forbidden") |
385 |
->status_is(403, "Non-superlibrarian user change of superlibrarian altaddress_email to undefined forbidden") |
382 |
->json_is( { error => "Not enough privileges to change a superlibrarian's altaddress_email to undefined" } ); |
386 |
->json_is( { error => "Not enough privileges to change a superlibrarian's email" } ); |
|
|
387 |
|
388 |
# update patron without sending email |
389 |
delete $newpatron->{email}; |
390 |
delete $newpatron->{secondary_email}; |
391 |
delete $newpatron->{altaddress_email}; |
392 |
$t->put_ok( "//$userid:$password@/api/v1/patrons/" . $superlibrarian->borrowernumber => json => $newpatron ) |
393 |
->status_is(200, "Non-superlibrarian user can edit superlibrarian successfully if not changing email"); |
394 |
# ->json_is( { error => "Not enough privileges to change a superlibrarian's email" } ); |
383 |
|
395 |
|
384 |
$schema->storage->txn_rollback; |
396 |
$schema->storage->txn_rollback; |
385 |
}; |
397 |
}; |
386 |
- |
|
|