self-service access for contacts, RT#25533
authorIvan Kohler <ivan@freeside.biz>
Mon, 30 Dec 2013 23:52:08 +0000 (15:52 -0800)
committerIvan Kohler <ivan@freeside.biz>
Mon, 30 Dec 2013 23:52:08 +0000 (15:52 -0800)
FS/FS/ClientAPI/MyAccount.pm
fs_selfservice/FS-SelfService/cgi/forgot_password.html
fs_selfservice/FS-SelfService/cgi/login.html

index d17131f..d7914d6 100644 (file)
@@ -2841,6 +2841,16 @@ sub myaccount_passwd {
   $svc_acct->set_password($p->{'new_password'});
   $error ||= $svc_acct->replace();
 
+  #regular pw change in self-service should change contact pw too, otherwise its
+  #way too confusing.  hell its confusing they're separate at all, but alas.
+  #need to support the "ISP provides email that's used as a contact email" case
+  #as well as we can.
+  my $contact = FS::contact->by_selfservice_email($svc_acct->email);
+  if ( $contact && $contact->custnum == $custnum ) {
+    #svc_acct was successful but this one returns an error?  "shouldn't happen"
+    $error ||= $contact->change_password($p->{'new_password'});
+  }
+
   my($label, $value) = $svc_acct->cust_svc->label;
 
   return { 'error' => $error,
@@ -2850,7 +2860,6 @@ sub myaccount_passwd {
 
 }
 
-#regular pw change in self-service should change contact pw too, otherwise its way too confusing.  hell its confusing they're separate at all, but alas.  need to support the "ISP provides email that's used as a contact email" case as well as we can.
 #  sub contact_passwd {
 #    my $p = shift;
 #    my($context, $session, $custnum) = _custoragent_session_custnum($p);
index 6071511..a1ce851 100644 (file)
@@ -14,7 +14,7 @@
 <INPUT TYPE="hidden" NAME="action" VALUE="do_forgot_password">
 <INPUT TYPE="hidden" NAME="agentnum" VALUE="<%= $agentnum %>">
 
-Please enter your email address.  A password reset email will be sent to that address.
+Please enter your email address.  A password reset email will be sent to that address.<BR><BR>
 
 <TABLE BGCOLOR="<%= $box_bgcolor || '#c0c0c0' %>" BORDER=0 CELLSPACING=2 CELLPADDING=0>
 
index f7af4e9..9cee01d 100644 (file)
@@ -47,7 +47,7 @@ if ( $single_domain ) {
 <TR>
   <TH ALIGN="right">Password </TH>
   <TD>
-    <INPUT TYPE="password" NAME="password">
+    <INPUT TYPE="password" NAME="password"> <A HREF="<%= $selfurl %>?action=forgot_password">Forgot your password?</A>
   </TD>
 </TR>
 <TR>