X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=fs_selfservice%2Fwordpress%2Ffreeside_selfservice.php;h=d26c56f4a8f967b463d6486e31ce30126dedd105;hp=2041eed9049c4e7e2e1355884923573db37515dd;hb=786daeef39e4009958f732744cacc0d24d16d021;hpb=e223601ee73eee830729052d221b2af3d0d2233b diff --git a/fs_selfservice/wordpress/freeside_selfservice.php b/fs_selfservice/wordpress/freeside_selfservice.php index 2041eed90..d26c56f4a 100644 --- a/fs_selfservice/wordpress/freeside_selfservice.php +++ b/fs_selfservice/wordpress/freeside_selfservice.php @@ -1,24 +1,100 @@ + + login( array( + 'email' => strtolower($_POST['freeside_email']), + 'username' => strtolower($_POST['freeside_username']), + 'domain' => strtolower($_POST['freeside_domain']), + 'password' => $_POST['freeside_password'], + ) ); + + #error_log("[login] received response from freeside: $response"); + + $error = $response['error']; + error_log($error); + + if ( $error ) { + + $url = isset($_SERVER['HTTPS']) ? 'https://' : 'http://'; + $url .= $_SERVER['SERVER_NAME']; + $url .= $_SERVER['REQUEST_URI']; + + wp_redirect(dirname($url). '/example_login.php?'. + 'username='. urlencode($_POST['freeside_username']). + '&domain='. urlencode($_POST['freeside_domain']). + '&email='. urlencode($_POST['freeside_email']). + '&freeside_error='. urlencode($error) + ); + exit; + + } + + // sucessful login + + $session_id = $response['session_id']; + + //error_log("[login] logged into freeside with session_id=$freeside_session_id, setting cookie"); + + setcookie('freeside_session_id', $session_id); + + $GLOBALS['FREESIDE_LOGIN_RESPONSE'] = $response; + +} + +function freeside_flatten($hash) { if ( !is_array($hash) ) return $hash; $flat = array(); @@ -34,29 +110,24 @@ function flatten($hash) { return($flat); } -class FreesideSelfService { - - //Change this to match the location of your selfservice xmlrpc.cgi or daemon - #var $URL = 'https://localhost/selfservice/xmlrpc.cgi'; - # XXX freeide_selfservice_url config value - #var $URL = 'http://localhost/selfservice/xmlrpc.cgi'; - var $URL = get_opgion('freeside_selfservice_url'); +class FreesideSelfService { function FreesideSelfService() { $this; } public function __call($name, $arguments) { + + $URL = 'http://'. get_option('freeside_server'). ':8080'; + //error_log("[FreesideSelfService] $name called, sending to ". $URL); - error_log("[FreesideSelfService] $name called, sending to ". $this->URL); - - $request = xmlrpc_encode_request("FS.ClientAPI_XMLRPC.$name", flatten($arguments[0])); + $request = xmlrpc_encode_request("FS.ClientAPI_XMLRPC.$name", freeside_flatten($arguments[0])); $context = stream_context_create( array( 'http' => array( 'method' => "POST", 'header' => "Content-Type: text/xml", 'content' => $request ))); - $file = file_get_contents($this->URL, false, $context); + $file = file_get_contents($URL, false, $context); $response = xmlrpc_decode($file); if (xmlrpc_is_fault($response)) { trigger_error("[FreesideSelfService] XML-RPC communication error: $response[faultString] ($response[faultCode])");