Bugzilla – Attachment 129593 Details for
Bug 28943
Lower the risk of accidental patron deletion by cleanup_database.pl
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 28943: Lower the risk of accidental patron deletion
Bug-28943-Lower-the-risk-of-accidental-patron-dele.patch (text/plain), 6.52 KB, created by
Martin Renvoize
on 2022-01-19 10:23:30 UTC
(
hide
)
Description:
Bug 28943: Lower the risk of accidental patron deletion
Filename:
MIME Type:
Creator:
Martin Renvoize
Created:
2022-01-19 10:23:30 UTC
Size:
6.52 KB
patch
obsolete
>From 2b8b1f17a3199e25faa0fe70e98e20052af56121 Mon Sep 17 00:00:00 2001 >From: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> >Date: Tue, 7 Sep 2021 12:22:05 +0000 >Subject: [PATCH] Bug 28943: Lower the risk of accidental patron deletion > >If you do not use a temporary self registration patron category, >you should actually make the preference >PatronSelfRegistrationExpireTemporaryAccountsDelay empty. > >As the comment in sysprefs.sql already said, we should not let >a zero value in the pref delete patrons too. > >The module is changed now, the test adjusted and >the description of both related sysprefs modified. > >Test plan: >Run t/db_dependent/Members.t >Check in Administration the two adjusted OPAC pref descriptions. > >Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> >Signed-off-by: David Nind <david@davidnind.com> >Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> >--- > C4/Members.pm | 6 +++++- > .../prog/en/modules/admin/preferences/opac.pref | 5 +++-- > t/db_dependent/Members.t | 15 +++++++++++++-- > 3 files changed, 21 insertions(+), 5 deletions(-) > >diff --git a/C4/Members.pm b/C4/Members.pm >index 210a9ea0de..143f410a8e 100644 >--- a/C4/Members.pm >+++ b/C4/Members.pm >@@ -644,7 +644,11 @@ sub DeleteExpiredOpacRegistrations { > my $delay = C4::Context->preference('PatronSelfRegistrationExpireTemporaryAccountsDelay'); > my $category_code = C4::Context->preference('PatronSelfRegistrationDefaultCategory'); > >- return 0 if not $category_code or not defined $delay or $delay eq q||; >+ return 0 unless $category_code && $delay; >+ # DO NOT REMOVE test on delay here! >+ # Some libraries may not use a temporary category, but want to keep patrons. >+ # We should not delete patrons when the value is NULL, empty string or 0. >+ > my $date_enrolled = dt_from_string(); > $date_enrolled->subtract( days => $delay ); > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref >index 20bdbd959e..7093555029 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref >@@ -792,13 +792,14 @@ OPAC: > - pref: PatronSelfRegistrationDefaultCategory > choices: patron-categories > - "as the default patron category for patrons registered via the OPAC." >- - "<br><strong>WARNING: Do not use a regular patron category for self registration.</strong> If the <code>misc/cronjobs/cleanup_database.pl</code> cronjob is setup to delete unverified and unfinished OPAC self registrations, it will permanently and unrecoverably delete all patrons that have registered more than <a href='/cgi-bin/koha/admin/preferences.pl?op=search&searchfield=PatronSelfRegistrationExpireTemporaryAccountsDelay'>PatronSelfRegistrationExpireTemporaryAccountsDelay</a> days ago." >+ - "<br><strong>WARNING: Do not use a regular patron category for self registration.</strong><br> >+If the <code>misc/cronjobs/cleanup_database.pl</code> cronjob is setup to delete unverified and unfinished OPAC self registrations, it will permanently and unrecoverably delete all patrons that have registered more than <a href='/cgi-bin/koha/admin/preferences.pl?op=search&searchfield=PatronSelfRegistrationExpireTemporaryAccountsDelay'>PatronSelfRegistrationExpireTemporaryAccountsDelay</a> days ago (unless that delay is empty or zero)." > - > - Delete patrons still in the category indicated by <a href="/cgi-bin/koha/admin/preferences.pl?op=search&searchfield=PatronSelfRegistrationDefaultCategory">PatronSelfRegistrationDefaultCategory</a> > - pref: PatronSelfRegistrationExpireTemporaryAccountsDelay > class: integer > - "days after account creation." >- - "<br><strong>NOTE:</strong> This system preference requires the <code>misc/cronjobs/cleanup_database.pl</code> cronjob. Ask your system administrator to schedule it." >+ - "<br><strong>NOTE:</strong> This system preference requires the <code>misc/cronjobs/cleanup_database.pl</code> cronjob. Ask your system administrator to schedule it.<br>No patrons will be deleted if you set the pref to zero or make it empty." > - > - "The following <a href='http://schema.koha-community.org/__VERSION__/tables/borrowers.html' target='blank'>database columns</a> must be filled in on the patron modification screen:" > - pref: PatronSelfModificationMandatoryField >diff --git a/t/db_dependent/Members.t b/t/db_dependent/Members.t >index b2c39378a0..8962f53510 100755 >--- a/t/db_dependent/Members.t >+++ b/t/db_dependent/Members.t >@@ -403,7 +403,7 @@ $borrower = Koha::Patrons->find( $borrowernumber )->unblessed; > ok( $borrower->{userid}, 'A userid should have been generated correctly' ); > > subtest 'purgeSelfRegistration' => sub { >- plan tests => 5; >+ plan tests => 8; > > #purge unverified > my $d=360; >@@ -417,7 +417,6 @@ subtest 'purgeSelfRegistration' => sub { > my $c= 'XYZ'; > $dbh->do("INSERT IGNORE INTO categories (categorycode) VALUES ('$c')"); > t::lib::Mocks::mock_preference('PatronSelfRegistrationDefaultCategory', $c ); >- t::lib::Mocks::mock_preference('PatronSelfRegistrationExpireTemporaryAccountsDelay', 360); > C4::Members::DeleteExpiredOpacRegistrations(); > my $self_reg = $builder->build_object({ > class => 'Koha::Patrons', >@@ -427,6 +426,18 @@ subtest 'purgeSelfRegistration' => sub { > } > }); > >+ # First test if empty PatronSelfRegistrationExpireTemporaryAccountsDelay returns zero >+ t::lib::Mocks::mock_preference('PatronSelfRegistrationExpireTemporaryAccountsDelay', q{} ); >+ is( C4::Members::DeleteExpiredOpacRegistrations(), 0, "DeleteExpiredOpacRegistrations with empty delay" ); >+ # Test zero too >+ t::lib::Mocks::mock_preference('PatronSelfRegistrationExpireTemporaryAccountsDelay', 0 ); >+ is( C4::Members::DeleteExpiredOpacRegistrations(), 0, "DeleteExpiredOpacRegistrations with delay 0" ); >+ # Also check empty category >+ t::lib::Mocks::mock_preference('PatronSelfRegistrationDefaultCategory', q{} ); >+ t::lib::Mocks::mock_preference('PatronSelfRegistrationExpireTemporaryAccountsDelay', 360 ); >+ is( C4::Members::DeleteExpiredOpacRegistrations(), 0, "DeleteExpiredOpacRegistrations with empty category" ); >+ t::lib::Mocks::mock_preference('PatronSelfRegistrationDefaultCategory', $c ); >+ > my $checkout = $builder->build_object({ > class=>'Koha::Checkouts', > value=>{ >-- >2.20.1
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 28943
:
124579
|
124580
|
126038
|
128652
| 129593 |
129711