public/plugin/advanced_subscription/test/ws_session_user.php
<?php
/* For license terms, see /license.txt */
use Chamilo\CoreBundle\Framework\Container;
/**
* A script to test session details by user web service.
*/
require_once __DIR__.'/../config.php';
api_protect_admin_script();
// exit;
$plugin = AdvancedSubscriptionPlugin::create();
$hookPlugin = Container::instantiateHook(HookAdvancedSubscription::class);
// Get params from request (GET or POST)
$params = [];
// Init result array
$params['user_id'] = (int) ($_REQUEST['u']);
$params['user_field'] = 'drupal_user_id';
$params['session_id'] = (int) ($_REQUEST['s']);
$params['profile_completed'] = 100;
$params['is_connected'] = true;
/**
* Copied code from WSHelperVerifyKey function.
*/
/**
* Start WSHelperVerifyKey.
*/
//error_log(print_r($params,1));
$check_ip = false;
$ip = trim($_SERVER['REMOTE_ADDR']);
// if we are behind a reverse proxy, assume it will send the
// HTTP_X_FORWARDED_FOR header and use this IP instead
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
list($ip1, $ip2) = preg_split('/,/D', $_SERVER['HTTP_X_FORWARDED_FOR']);
$ip = trim($ip1);
}
// Check if a file that limits access from webservices exists and contains
// the restraining check
if (is_file(api_get_path(WEB_CODE_PATH).'webservices/webservice-auth-ip.conf.php')) {
include api_get_path(WEB_CODE_PATH).'webservices/webservice-auth-ip.conf.php';
if (!empty($ws_auth_ip)) {
$check_ip = true;
}
}
if ($check_ip) {
$security_key = api_get_env_variable('kernel.secret');
} else {
$security_key = $ip.api_get_env_variable('kernel.secret');;
//error_log($secret_key.'-'.$security_key);
}
/*
* End WSHelperVerifyKey.
*/
$params['secret_key'] = hash('sha512', $security_key);
// Registration soap wsdl
$wsUrl = api_get_path(WEB_CODE_PATH).'webservices/registration.soap.php?wsdl';
$options = [
'location' => $wsUrl,
'uri' => $wsUrl,
];
/*
* WS test.
*/
try {
// Init soap client
$client = new SoapClient(null, $options);
// Soap call to WS
$result = $client->__soapCall('HookAdvancedSubscription..WSSessionGetDetailsByUser', [$params]);
if (is_object($result) && isset($result->action_url)) {
echo '<br />';
echo Display::url('message'.$result->message, $result->action_url);
}
} catch (\Exception $e) {
var_dump($e);
}