From 5604a2d0f7d5cec7c6b67c88b37fc10fbc0fde77 Mon Sep 17 00:00:00 2001 From: Aleisha Amohia Date: Tue, 14 Apr 2020 04:51:41 +0000 Subject: [PATCH] Bug 24913: Add PatronSelfRegistrationConfirmEmail syspref To test: 1) update database, restart memcached/plack 2) Go to Administration -> System preferences -> OPAC tab. Enable the new PatronSelfRegistrationConfirmEmail system preference. Enable other required self registration sysprefs. 3) Go to the OPAC home page. (You may need to log out). Click the 'Register' link so you are redirected to the member entry form. 4) Notice the 'Confirm primary email' field after the 'primary email' field. Put 'a@a.com' in primary email, and 'b@b.com' in the confirm field. Scroll to the end of the form and Submit. 5) Confirm the form is not successfully submitted, and an error message is shown to indicate the email addresses do not match. 6) Confirm you cannot cut, copy or paste in either the primary email or confirm primary email fields. Confirm the right click menu doesn't work in these fields. 7) Disable javascript in your browser. 8) Repeat steps 3 and 4. 9) Confirm there is an error message to indicate the email addresses do not match. 10) Re-enable javascript. Fill in the form correctly with matching email addresses and confirm it successfully submits. 11) Disable the PatronSelfRegistrationConfirmEmail syspref. 12) Attempt to register an account on the OPAC again. Confirm the 'confirm email address' field is gone and form works as expected. Sponsored-by: TBC (just checking) --- ...PatronSelfRegistrationConfirmEmail_syspref.perl | 6 ++++ installer/data/mysql/sysprefs.sql | 1 + .../prog/en/modules/admin/preferences/opac.pref | 6 ++++ .../bootstrap/en/modules/opac-memberentry.tt | 34 ++++++++++++++++++++++ opac/opac-memberentry.pl | 3 ++ 5 files changed, 50 insertions(+) create mode 100644 installer/data/mysql/atomicupdate/bug_24913-add_PatronSelfRegistrationConfirmEmail_syspref.perl diff --git a/installer/data/mysql/atomicupdate/bug_24913-add_PatronSelfRegistrationConfirmEmail_syspref.perl b/installer/data/mysql/atomicupdate/bug_24913-add_PatronSelfRegistrationConfirmEmail_syspref.perl new file mode 100644 index 0000000000..73ca835feb --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_24913-add_PatronSelfRegistrationConfirmEmail_syspref.perl @@ -0,0 +1,6 @@ +$DBversion = 'XXX'; +if( CheckVersion( $DBversion ) ) { + $dbh->do(q{INSERT IGNORE INTO systempreferences (variable,value,options,explanation,type) VALUES ('PatronSelfRegistrationConfirmEmail', '0', NULL, 'Require users to confirm their email address by entering it twice.', 'YesNo') }); + + NewVersion( $DBversion, 24913, "Add PatronSelfRegistrationConfirmEmail syspref"); +} diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql index a15c4c6c95..afb586a307 100644 --- a/installer/data/mysql/sysprefs.sql +++ b/installer/data/mysql/sysprefs.sql @@ -487,6 +487,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` ('PatronSelfRegistrationAdditionalInstructions','','','A free text field to display additional instructions to newly self registered patrons.','free'), ('PatronSelfRegistrationBorrowerMandatoryField','surname|firstname',NULL,'Choose the mandatory fields for a patron\'s account, when registering via the OPAC.','free'), ('PatronSelfRegistrationBorrowerUnwantedField','',NULL,'Name the fields you don\'t want to display when registering a new patron via the OPAC.','free'), +('PatronSelfRegistrationConfirmEmail', '0', NULL, 'Require users to confirm their email address by entering it twice.', 'YesNo'), ('PatronSelfRegistrationDefaultCategory','','','A patron registered via the OPAC will receive a borrower category code set in this system preference.','free'), ('PatronSelfRegistrationEmailMustBeUnique', '0', 'If set, the field borrowers.email will be considered as a unique field on self registering', NULL, 'YesNo'), ('PatronSelfRegistrationExpireTemporaryAccountsDelay','0',NULL,'If PatronSelfRegistrationDefaultCategory is enabled, this system preference controls how long a patron can have a temporary status before the account is deleted automatically. It is an integer value representing a number of days to wait before deleting a temporary patron account. Setting it to 0 disables the deleting of temporary accounts.','Integer'), 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 c705a288c3..37fff564c8 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 @@ -873,6 +873,12 @@ OPAC: yes: "Display and prefill" no: "Do not display and prefill" - "password and login form after a patron has self registered." + - + - pref: PatronSelfRegistrationConfirmEmail + choices: + yes: Require + no: "Do not require" + - users to confirm their email address by entering it twice. Advanced Search Options: - diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-memberentry.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-memberentry.tt index 8761cc88ae..35af40224f 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-memberentry.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-memberentry.tt @@ -93,6 +93,9 @@ [% IF field == "duplicate_email" %]
  • This email address already exists in our database.
  • [% END %] + [% IF field == "email_match" %] +
  • Emails do not match! confirm email address
  • + [% END %] [% END %] Please correct and resubmit. @@ -554,6 +557,19 @@ [% IF mandatory.defined('email') %]Required[% END %] + + [% IF action != 'edit' and Koha.Preference('PatronSelfRegistrationConfirmEmail') %] +
  • + [% IF mandatory.defined('email') %] + + [% ELSE %] + + [% END %] + + + [% IF mandatory.defined('email') %]Required[% END %] +
  • + [% END %] [% END %] [% UNLESS hidden.defined('emailpro') %] @@ -1004,6 +1020,9 @@ borrower_email: { email: true }, + borrower_repeat_email: { + equalTo: '#borrower_email' + }, borrower_emailpro: { email: true }, @@ -1129,6 +1148,21 @@ $('#borrower_dateofbirth').val(''); return false; }); + + [% IF action != 'edit' and Koha.Preference('PatronSelfRegistrationConfirmEmail') %] + $("#borrower_email").bind("cut copy paste", function(e){ + e.preventDefault(); + $("#borrower_email").bind("contextmenu", function(e){ + e.preventDefault(); + }); + }); + $("#borrower_repeat_email").bind("cut copy paste", function(e){ + e.preventDefault(); + $("#borrower_repeat_email").bind("contextmenu", function(e){ + e.preventDefault(); + }); + }); + [% END %] //]]> [% INCLUDE 'calendar.inc' %] diff --git a/opac/opac-memberentry.pl b/opac/opac-memberentry.pl index 3f6d8a8735..c1ec21df12 100755 --- a/opac/opac-memberentry.pl +++ b/opac/opac-memberentry.pl @@ -427,6 +427,9 @@ sub CheckForInvalidFields { if ( $patrons_with_same_email ) { push @invalidFields, "duplicate_email"; } + } elsif ( C4::Context->preference("PatronSelfRegistrationConfirmEmail") + && $borrower->{'email'} ne $borrower->{'repeat_email'} ) { + push @invalidFields, "email_match"; } } if ($borrower->{'emailpro'}) { -- 2.11.0