From 76a893c2187f59e7fdb9bc8282b780efd9dd8504 Mon Sep 17 00:00:00 2001 From: Christopher Burger Date: Tue, 16 Jan 2018 12:14:54 -0500 Subject: RT# 39340 - Created minimal selfservice that only allows payments to be made, authorization is based on ip and mac address. This is not done yet need to write routine to get mac address from radius server based on ip address. --- min_selfservice/freeside.class.php | 74 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 min_selfservice/freeside.class.php (limited to 'min_selfservice/freeside.class.php') diff --git a/min_selfservice/freeside.class.php b/min_selfservice/freeside.class.php new file mode 100644 index 000000000..ee77ce016 --- /dev/null +++ b/min_selfservice/freeside.class.php @@ -0,0 +1,74 @@ += 50400 ) { + + #php 5.4+ (deb 7+) + foreach ($hash as $key => $value) { + $flat[] = $key; + $flat[] = $value; + } + + } + + return($flat); +} + +#php 5.4+? +#function flatten($hash) { +# if ( !is_array($hash) ) return $hash; +# +# $flat = array(); +# +# foreach ($hash as $key => $value) { +# $flat[] = $key; +# $flat[] = $value; +# } +# +# return($flat); +#} + +class FreesideSelfService { + + //Change this to match the location of your selfservice xmlrpc.cgi or daemon + #var $URL = 'https://localhost/selfservice/xmlrpc.cgi'; + #var $URL = 'http://localhost/selfservice/xmlrpc.cgi'; + var $URL = 'http://localhost:8080/'; + + function FreesideSelfService() { + $this; + } + + public function __call($name, $arguments) { + + error_log("[FreesideSelfService] $name called, sending to ". $this->URL); + + $request = xmlrpc_encode_request("FS.ClientAPI_XMLRPC.$name", 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); + $response = xmlrpc_decode($file); + // uncomment to trace everything + //error_log(print_r($response, true)); + if (xmlrpc_is_fault($response)) { + trigger_error("[FreesideSelfService] XML-RPC communication error: $response[faultString] ($response[faultCode])"); + } else { + //error_log("[FreesideSelfService] $response"); + return $response; + } + } + +} + +?> -- cgit v1.2.1