diff options
author | Ivan Kohler <ivan@freeside.biz> | 2015-02-06 16:53:29 -0800 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2015-02-06 16:53:29 -0800 |
commit | d0ba0fe7d87171e79f0cf38b073b9d454e868b68 (patch) | |
tree | b4314087fe07f5839fab24639b108aaa569dafc9 /ng_selfservice | |
parent | 085c3997c33b6aeb55eed0fee6db11b243a20081 (diff) |
contacts can be shared among customers / "duplicate contact emails", ng_selfservice login, RT#27943
Diffstat (limited to 'ng_selfservice')
-rw-r--r-- | ng_selfservice/process_login.php | 69 | ||||
-rw-r--r-- | ng_selfservice/process_select_cust.php | 32 |
2 files changed, 96 insertions, 5 deletions
diff --git a/ng_selfservice/process_login.php b/ng_selfservice/process_login.php index d2d01550d..15b000b14 100644 --- a/ng_selfservice/process_login.php +++ b/ng_selfservice/process_login.php @@ -4,6 +4,7 @@ require('freeside.class.php'); $freeside = new FreesideSelfService(); $response = $freeside->login( array( + 'email' => strtolower($_POST['email']), 'username' => strtolower($_POST['username']), 'domain' => strtolower($_POST['domain']), 'password' => $_POST['password'], @@ -16,8 +17,9 @@ $error = $response['error']; if ( $error ) { header('Location:index.php?username='. urlencode($username). - '&domain='. urlencode($domain). - '&error='. urlencode($error) + '&domain='. urlencode($domain). + '&email='. urlencode($email). + '&error='. urlencode($error) ); die(); @@ -29,12 +31,69 @@ $session_id = $response['session_id']; error_log("[login] logged into freeside with session_id=$session_id, setting cookie"); -// now what? for now, always redirect to the main page. +// now what? for now, always redirect to the main page (or the select a +// customer diversion). // eventually, other options? setcookie('session_id', $session_id); -header("Location:main.php") -#die(); +if ( $response['custnum'] || $response['svcnum'] ) { + + header("Location:main.php"); + die(); + +} elseif ( $response['customers'] ) { +var_dump($response['customers']); +?> + + <? $title ='Select customer'; include('elements/header.php'); ?> + <? include('elements/error.php'); ?> + + <FORM NAME="SelectCustomerForm" ACTION="process_select_cust.php" METHOD=POST> + <INPUT TYPE="hidden" NAME="action" VALUE="switch_cust"> + + <TABLE BGCOLOR="#c0c0c0" BORDER=0 CELLSPACING=2 CELLPADDING=0> + + <TR> + <TH ALIGN="right">Customer </TH> + <TD> + <SELECT NAME="custnum" ID="custnum" onChange="custnum_changed()"> + <OPTION VALUE="">Select a customer + <? foreach ( $response['customers'] AS $custnum => $customer ) { ?> + <OPTION VALUE="<? echo $custnum ?>"><? echo htmlspecialchars( $customer ) ?> + <? } ?> + </SELECT> + </TD> + </TR> + + <TR> + <TD COLSPAN=2 ALIGN="center"><INPUT TYPE="submit" ID="submit" VALUE="Select customer" DISABLED></TD> + </TR> + + </TABLE> + </FORM> + + <SCRIPT TYPE="text/javascript"> + + function custnum_changed () { + var form = document.SelectCustomerForm; + if ( form.custnum.selectedIndex > 0 ) { + form.submit.disabled = false; + } else { + form.submit.disabled = true; + } + } + + </SCRIPT> + + <? include('elements/footer.php'); ?> + +<? + +// } else { +// +// die 'login successful, but unrecognized info (no custnum, svcnum or customers)'; + +} ?> diff --git a/ng_selfservice/process_select_cust.php b/ng_selfservice/process_select_cust.php new file mode 100644 index 000000000..fe3612157 --- /dev/null +++ b/ng_selfservice/process_select_cust.php @@ -0,0 +1,32 @@ +<? + +require('freeside.class.php'); +$freeside = new FreesideSelfService(); + +$response = $freeside->switch_cust( array( + 'session_id' => $_COOKIE['session_id'], + 'custnum' => $_POST['custnum'], +) ); + +#error_log("[switch_cust] received response from freeside: $response"); + +$error = $response['error']; + +if ( $error ) { + + //this isn't well handled... but the only possible error is a session timeout? + + header('Location:index.php?username='. urlencode($username). + '&domain='. urlencode($domain). + '&email='. urlencode($email). + '&error='. urlencode($error) + ); + die(); + +} + +// sucessful customer selection + +header("Location:main.php"); + +?> |