@@ -, +, @@
email address
---
koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-memberentry.tt | 3 +++
opac/opac-memberentry.pl | 9 ++++++++-
2 files changed, 11 insertions(+), 1 deletion(-)
--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-memberentry.tt
+++ a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-memberentry.tt
@@ -64,6 +64,9 @@
[% IF field == "password_match" %]
Passwords do not match! password[% END %]
[% IF field == "password_invalid" %]Password does not meet minimum requirements! password[% END %]
[% IF field == "password_spaces" %]Password contains leading and/or trailing spaces! password[% END %]
+ [% IF field == "duplicate_email" %]
+ This email address already exists in our database.
+ [% END %]
[% END %]
Please correct the errors and resubmit.
--- a/opac/opac-memberentry.pl
+++ a/opac/opac-memberentry.pl
@@ -323,7 +323,14 @@ sub CheckForInvalidFields {
my $borrower = shift;
my @invalidFields;
if ($borrower->{'email'}) {
- push(@invalidFields, "email") if (!Email::Valid->address($borrower->{'email'}));
+ unless ( Email::Valid->address($borrower->{'email'}) ) {
+ push(@invalidFields, "email");
+ } elsif ( C4::Context->preference("PatronSelfRegistrationEmailMustBeUnique") ) {
+ my $patrons_with_same_email = Koha::Patrons->search( { email => $borrower->{email} })->count;
+ if ( $patrons_with_same_email ) {
+ push @invalidFields, "duplicate_email";
+ }
+ }
}
if ($borrower->{'emailpro'}) {
push(@invalidFields, "emailpro") if (!Email::Valid->address($borrower->{'emailpro'}));
--