diff --git a/proxy/config.php b/proxy/config.php
index 6b6e9c6..0423a9d 100644
--- a/proxy/config.php
+++ b/proxy/config.php
@@ -36,10 +36,10 @@ $target_mail_view = $target_civicrm . '/civicrm/mailing/view';
** GENERAL OPTIONS **
****************************************************************/
-// if you enable this, the system will also try to
-// parse a parameter called 'json' as a JSON file
-// when looking for a certain parameter
-$evaluate_json_parameter = FALSE;
+// This logo is shown if the proxy server is address with a web browser
+// add your own logo here
+$civiproxy_logo = "
";
+
// Set api-key for mail subscribe/unsubscribe user
// Set to NULL/FALSE to disable the feature
@@ -86,6 +86,12 @@ $file_cache_include = array(
/****************************************************************
** REST API OPTIONS **
****************************************************************/
+
+// if you enable this, the system will also try to
+// parse the 'json' parameter, which holds additional
+// input data according to the CiviCRM REST API specs
+$rest_evaluate_json_parameter = FALSE;
+
// whitelisting is done per IP address ($_SERVER['REMOTE_ADDR']) with a 'all' for the generic stuff that applies to all IP addresses
// - if a request comes in and the IP is not a key in the array, the whitelisted in 'all' are used
// - if a request comes in and the IP is indeed a key in the array, the whitelisted in the IP are checked first. If nothing is
diff --git a/proxy/proxy.php b/proxy/proxy.php
index 244f167..20168c7 100644
--- a/proxy/proxy.php
+++ b/proxy/proxy.php
@@ -8,8 +8,7 @@
+---------------------------------------------------------*/
require_once "config.php";
-$civiproxy_version = '0.5.beta1+dev20';
-$civiproxy_logo = "
";
+$civiproxy_version = '0.6.dev1';
/**
* this will redirect the request to another URL,
@@ -228,12 +227,17 @@ function civiproxy_sanitise($value, $type) {
}
} elseif ($type == 'json') {
// valid json
- $json_data = json_decode($value);
+ $json_data = json_decode($value, true);
if ($json_data === NULL) {
$value = '';
} else {
$value = json_encode($value);
}
+ } elseif ($type == 'array') {
+ // this should only happen _inside_ the json field
+ if (!is_array($value)) {
+ $value = '';
+ }
} elseif (is_array($type)) {
// this is a list of valid options
$requested_value = $value;
diff --git a/proxy/rest.php b/proxy/rest.php
index 4018a6e..a8848d4 100644
--- a/proxy/rest.php
+++ b/proxy/rest.php
@@ -76,10 +76,10 @@ foreach ($action as $key => $value) {
}
// evaluate the JSON parameter
-global $evaluate_json_parameter;
-if ($evaluate_json_parameter) {
+global $rest_evaluate_json_parameter;
+if ($rest_evaluate_json_parameter) {
if (isset($_REQUEST['json'])) {
- $json_data = json_decode($_REQUEST['json']);
+ $json_data = json_decode($_REQUEST['json'], true);
if (!empty($json_data)) {
$json_parameters = civiproxy_get_parameters($valid_parameters, $json_data);
$parameters['json'] = json_encode($json_parameters);