diff options
author | Mark Wells <mark@freeside.biz> | 2016-03-29 16:39:08 -0700 |
---|---|---|
committer | Mark Wells <mark@freeside.biz> | 2016-03-31 16:52:00 -0700 |
commit | 77c3202f902126afe13a7fe6543d0e88d7f4deea (patch) | |
tree | fa3fc75912917ec04700839a8f759b3bad73ab14 | |
parent | 166741cba0f861e264cb4ee5ddccf28b5be0ed05 (diff) |
some fixes for contact selfservice login and password reset, #25533
-rw-r--r-- | FS/FS/contact.pm | 15 |
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 : '', |