Bugzilla – Attachment 129545 Details for
Bug 29525
Privacy settings for patrons should also affect holds history
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 29525: Make Koha::Hold->fill anonymize if required
Bug-29525-Make-KohaHold-fill-anonymize-if-required.patch (text/plain), 4.11 KB, created by
Tomás Cohen Arazi (tcohen)
on 2022-01-17 21:17:39 UTC
(
hide
)
Description:
Bug 29525: Make Koha::Hold->fill anonymize if required
Filename:
MIME Type:
Creator:
Tomás Cohen Arazi (tcohen)
Created:
2022-01-17 21:17:39 UTC
Size:
4.11 KB
patch
obsolete
>From 72fea31cfed7d14728deeeba0d7eefecdda9e18c Mon Sep 17 00:00:00 2001 >From: Tomas Cohen Arazi <tomascohen@theke.io> >Date: Thu, 13 Jan 2022 14:40:04 -0300 >Subject: [PATCH] Bug 29525: Make Koha::Hold->fill anonymize if required > >This patch makes filling a hold anonymize it on the same call, if >settings require it (i.e. if borrowers.privacy is set to 2). > >To test: >1. Apply this patch >2. Run: > $ kshell > k$ prove t/db_dependent/Koha/Hold.t >=> SUCCESS: The code actually does what it is meant to >3. Try on the UI, notice it gets anonymized if the patron has privacy == always/2. >4. Sign off :-D > >Note: AnonymousPatron should be set. Otherwise it would set NULL. But >that's fine, that's what Koha does already. > >Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> > >Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com> >--- > Koha/Hold.pm | 6 +++- > t/db_dependent/Koha/Hold.t | 63 +++++++++++++++++++++++++++++++++++++- > 2 files changed, 67 insertions(+), 2 deletions(-) > >diff --git a/Koha/Hold.pm b/Koha/Hold.pm >index cc06327d45..54fd7dbe7b 100644 >--- a/Koha/Hold.pm >+++ b/Koha/Hold.pm >@@ -601,7 +601,11 @@ sub fill { > } > ); > >- $self->_move_to_old; >+ my $old_me = $self->_move_to_old; >+ # anonymize if required >+ $old_me->anonymize >+ if $patron->privacy == 2; >+ > $self->SUPER::delete(); # Do not add a DELETE log > > # now fix the priority on the others.... >diff --git a/t/db_dependent/Koha/Hold.t b/t/db_dependent/Koha/Hold.t >index 4260637a03..300895e6da 100755 >--- a/t/db_dependent/Koha/Hold.t >+++ b/t/db_dependent/Koha/Hold.t >@@ -38,7 +38,7 @@ my $builder = t::lib::TestBuilder->new; > > subtest 'fill() tests' => sub { > >- plan tests => 11; >+ plan tests => 12; > > $schema->storage->txn_begin; > >@@ -164,6 +164,67 @@ subtest 'fill() tests' => sub { > > is( $logs->count, 0, 'HoldsLog disabled, no logs added' ); > >+ subtest 'anonymization behavior tests' => sub { >+ >+ plan tests => 4; >+ >+ # reduce the tests noise >+ t::lib::Mocks::mock_preference( 'HoldsLog', 0 ); >+ t::lib::Mocks::mock_preference( 'HoldFeeMode', 'not_always' ); >+ >+ # 0 == keep forever >+ $patron->privacy(0)->store; >+ my $hold = $builder->build_object( >+ { >+ class => 'Koha::Holds', >+ value => { borrowernumber => $patron->id, status => undef } >+ } >+ ); >+ $hold->fill(); >+ is( Koha::Old::Holds->find( $hold->id )->borrowernumber, >+ $patron->borrowernumber, 'Patron link is kept' ); >+ >+ # 1 == "default", meaning it is not protected from removal >+ $patron->privacy(1)->store; >+ $hold = $builder->build_object( >+ { >+ class => 'Koha::Holds', >+ value => { borrowernumber => $patron->id, status => undef } >+ } >+ ); >+ $hold->fill(); >+ is( Koha::Old::Holds->find( $hold->id )->borrowernumber, >+ $patron->borrowernumber, 'Patron link is kept' ); >+ >+ # 2 == delete immediately >+ $patron->privacy(2)->store; >+ $hold = $builder->build_object( >+ { >+ class => 'Koha::Holds', >+ value => { borrowernumber => $patron->id, status => undef } >+ } >+ ); >+ $hold->fill(); >+ is( Koha::Old::Holds->find( $hold->id )->borrowernumber, >+ undef, 'Patron link is deleted immediately' ); >+ >+ my $anonymous_patron = $builder->build_object({ class => 'Koha::Patrons' }); >+ t::lib::Mocks::mock_preference( 'AnonymousPatron', $anonymous_patron->id ); >+ >+ $hold = $builder->build_object( >+ { >+ class => 'Koha::Holds', >+ value => { borrowernumber => $patron->id, status => undef } >+ } >+ ); >+ $hold->cancel(); >+ is( >+ Koha::Old::Holds->find( $hold->id )->borrowernumber, >+ $anonymous_patron->id, >+ 'Patron link is set to the configured anonymous patron immediately' >+ ); >+ }; >+ > $schema->storage->txn_rollback; > }; > >-- >2.32.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 29525
:
128975
|
128976
|
128977
|
129258
|
129259
|
129260
|
129265
|
129266
|
129267
|
129268
|
129273
|
129321
|
129322
|
129323
|
129363
|
129364
|
129424
|
129425
|
129426
|
129427
|
129428
|
129432
|
129433
|
129434
|
129435
|
129436
|
129544
|
129545
|
130254
|
130255
|
130256
|
130257
|
130258