summaryrefslogtreecommitdiff
path: root/ng_selfservice
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2015-02-06 16:53:29 -0800
committerIvan Kohler <ivan@freeside.biz>2015-02-06 16:53:29 -0800
commitd0ba0fe7d87171e79f0cf38b073b9d454e868b68 (patch)
treeb4314087fe07f5839fab24639b108aaa569dafc9 /ng_selfservice
parent085c3997c33b6aeb55eed0fee6db11b243a20081 (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.php69
-rw-r--r--ng_selfservice/process_select_cust.php32
2 files changed, 96 insertions, 5 deletions
diff --git a/ng_selfservice/process_login.php b/ng_selfservice/process_login.php
index d2d0155..15b000b 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 0000000..fe36121
--- /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");
+
+?>