summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2016-03-29 16:39:08 -0700
committerMark Wells <mark@freeside.biz>2016-03-31 16:52:00 -0700
commit77c3202f902126afe13a7fe6543d0e88d7f4deea (patch)
treefa3fc75912917ec04700839a8f759b3bad73ab14
parent166741cba0f861e264cb4ee5ddccf28b5be0ed05 (diff)
some fixes for contact selfservice login and password reset, #25533
-rw-r--r--FS/FS/contact.pm15
1 files changed, 8 insertions, 7 deletions
diff --git a/FS/FS/contact.pm b/FS/FS/contact.pm
index 39abed2d5..2cea2d1fc 100644
--- a/FS/FS/contact.pm
+++ b/FS/FS/contact.pm
@@ -749,9 +749,9 @@ sub contact_email {
=item by_selfservice_email EMAILADDRESS
-Alternate search constructor (class method). Given an email address,
-returns the contact for that address, or the empty string if no contact
-has that email address.
+Alternate search constructor (class method). Given an email address, returns
+the contact for that address. If that contact doesn't have selfservice access,
+or there isn't one, returns the empty string.
=cut
@@ -762,7 +762,8 @@ sub by_selfservice_email {
'table' => 'contact_email',
'addl_from' => ' LEFT JOIN contact USING ( contactnum ) ',
'hashref' => { 'emailaddress' => $email, },
- 'extra_sql' => " AND ( disabled IS NULL OR disabled = '' )",
+ 'extra_sql' => " AND ( contact.disabled IS NULL ) ".
+ " AND ( contact.selfservice_access = 'Y' )",
}) or return '';
$contact_email->contact;
@@ -883,9 +884,9 @@ sub send_reset_email {
my $agentnum = $cust_main ? $cust_main->agentnum : '';
my $msgnum = $conf->config('selfservice-password_reset_msgnum', $agentnum);
#die "selfservice-password_reset_msgnum unset" unless $msgnum;
- return { 'error' => "selfservice-password_reset_msgnum unset" } unless $msgnum;
+ return "selfservice-password_reset_msgnum unset" unless $msgnum;
my $msg_template = qsearchs('msg_template', { msgnum => $msgnum } );
- return { 'error' => "selfservice-password_reset_msgnum cannot be loaded" } unless $msg_template;
+ return "selfservice-password_reset_msgnum cannot be loaded" unless $msg_template;
my %msg_template = (
'to' => join(',', map $_->emailaddress, @contact_email ),
'cust_main' => $cust_main,
@@ -897,7 +898,7 @@ sub send_reset_email {
my $cust_msg = $msg_template->prepare( %msg_template );
my $error = $cust_msg->insert;
- return { 'error' => $error } if $error;
+ return $error if $error;
my $queue = new FS::queue {
'job' => 'FS::cust_msg::process_send',
'custnum' => $cust_main ? $cust_main->custnum : '',