From d0ba0fe7d87171e79f0cf38b073b9d454e868b68 Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Fri, 6 Feb 2015 16:53:29 -0800 Subject: [PATCH] contacts can be shared among customers / "duplicate contact emails", ng_selfservice login, RT#27943 --- fs_selfservice/FS-SelfService/cgi/select_cust.html | 19 +++++- ng_selfservice/process_login.php | 69 ++++++++++++++++++++-- ng_selfservice/process_select_cust.php | 32 ++++++++++ 3 files changed, 112 insertions(+), 8 deletions(-) create mode 100644 ng_selfservice/process_select_cust.php diff --git a/fs_selfservice/FS-SelfService/cgi/select_cust.html b/fs_selfservice/FS-SelfService/cgi/select_cust.html index 7ab55db45..03b35c675 100644 --- a/fs_selfservice/FS-SelfService/cgi/select_cust.html +++ b/fs_selfservice/FS-SelfService/cgi/select_cust.html @@ -10,7 +10,7 @@ <%= $error %> <%= $selfurl =~ s/\?.*//; ''; %> -
+ @@ -19,7 +19,7 @@ Customer -
+ + <%= $body_footer %> 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']); +?> + + + + +
+ + + + + + + + + + + + + +
Customer + +
+
+ + + + + + 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 @@ +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"); + +?> -- 2.11.0