1.10.x
			
			
		
		
							parent
							
								
									39c71e4cc3
								
							
						
					
					
						commit
						a831842622
					
				@ -0,0 +1,142 @@ | 
				
			||||
<?php | 
				
			||||
/* For license terms, see /license.txt */ | 
				
			||||
/** | 
				
			||||
 * A script to test session details by user web service | 
				
			||||
 * @package chamilo.plugin.advanced_subscription | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
require_once __DIR__ . '/../config.php'; | 
				
			||||
// Protect test | 
				
			||||
api_protect_admin_script(); | 
				
			||||
 | 
				
			||||
// exit; | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * Code copied from registration soap | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
define('WS_ERROR_SECRET_KEY', 1); | 
				
			||||
define('WS_ERROR_NOT_FOUND_RESULT', 2); | 
				
			||||
define('WS_ERROR_INVALID_INPUT', 3); | 
				
			||||
define('WS_ERROR_SETTING', 4); | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * Copied function from registration.soap.php | 
				
			||||
 * @param $code | 
				
			||||
 * @return null|soap_fault | 
				
			||||
 */ | 
				
			||||
function return_error($code) { | 
				
			||||
    $fault = null; | 
				
			||||
    switch ($code) { | 
				
			||||
        case WS_ERROR_SECRET_KEY: | 
				
			||||
            $fault = new soap_fault('Server', '', 'Secret key is not correct or params are not correctly set'); | 
				
			||||
            break; | 
				
			||||
        case WS_ERROR_NOT_FOUND_RESULT: | 
				
			||||
            $fault = new soap_fault('Server', '', 'No result was found for this query'); | 
				
			||||
            break; | 
				
			||||
        case WS_ERROR_INVALID_INPUT: | 
				
			||||
            $fault = new soap_fault('Server', '', 'The input variables are invalid o are not correctly set'); | 
				
			||||
            break; | 
				
			||||
        case WS_ERROR_SETTING: | 
				
			||||
            $fault = new soap_fault('Server', '', 'Please check the configuration for this webservice'); | 
				
			||||
            break; | 
				
			||||
    } | 
				
			||||
    return $fault; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * Copied function from registration.soap.php | 
				
			||||
 * For this test, always return true | 
				
			||||
 * @param $params | 
				
			||||
 * @return bool | 
				
			||||
 */ | 
				
			||||
function WSHelperVerifyKey($params) | 
				
			||||
{ | 
				
			||||
 | 
				
			||||
    return true; | 
				
			||||
    /* | 
				
			||||
    global $_configuration, $debug; | 
				
			||||
    if (is_array($params)) { | 
				
			||||
        $secret_key = $params['secret_key']; | 
				
			||||
    } else { | 
				
			||||
        $secret_key = $params; | 
				
			||||
    } | 
				
			||||
    //error_log(print_r($params,1)); | 
				
			||||
    $check_ip = false; | 
				
			||||
    $ip_matches = 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) = split(',', $_SERVER['HTTP_X_FORWARDED_FOR']); | 
				
			||||
        $ip = trim($ip1); | 
				
			||||
    } | 
				
			||||
    if ($debug) | 
				
			||||
        error_log("ip: $ip"); | 
				
			||||
    // Check if a file that limits access from webservices exists and contains | 
				
			||||
    // the restraining check | 
				
			||||
    if (is_file('webservice-auth-ip.conf.php')) { | 
				
			||||
        include 'webservice-auth-ip.conf.php'; | 
				
			||||
        if ($debug) | 
				
			||||
            error_log("webservice-auth-ip.conf.php file included"); | 
				
			||||
        if (!empty($ws_auth_ip)) { | 
				
			||||
            $check_ip = true; | 
				
			||||
            $ip_matches = api_check_ip_in_range($ip, $ws_auth_ip); | 
				
			||||
            if ($debug) | 
				
			||||
                error_log("ip_matches: $ip_matches"); | 
				
			||||
        } | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    if ($debug) { | 
				
			||||
        error_log("checkip " . intval($check_ip)); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    if ($check_ip) { | 
				
			||||
        $security_key = $_configuration['security_key']; | 
				
			||||
    } else { | 
				
			||||
        $security_key = $ip.$_configuration['security_key']; | 
				
			||||
        //error_log($secret_key.'-'.$security_key); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    $result = api_is_valid_secret_key($secret_key, $security_key); | 
				
			||||
    //error_log($secret_key.'-'.$security_key); | 
				
			||||
    if ($debug) | 
				
			||||
        error_log('WSHelperVerifyKey result: '.intval($result)); | 
				
			||||
    return $result; | 
				
			||||
    */ | 
				
			||||
} | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * End copied code | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
$plugin = AdvancedSubscriptionPlugin::create(); | 
				
			||||
$hookPlugin = HookAdvancedSubscription::create(); | 
				
			||||
// Get validation hash | 
				
			||||
$hash = Security::remove_XSS($_REQUEST['v']); | 
				
			||||
// Get data from request (GET or POST) | 
				
			||||
$data = array(); | 
				
			||||
$params = array(); | 
				
			||||
$data['action'] = 'subscribe'; | 
				
			||||
$data['currentUserId'] = api_get_user_id(); | 
				
			||||
$data['queueId'] = 0; | 
				
			||||
$data['is_connected'] = true; | 
				
			||||
$data['profile_completed'] = 90.0; | 
				
			||||
// Init result array | 
				
			||||
 | 
				
			||||
$data['sessionId'] = intval($_REQUEST['s']); | 
				
			||||
$data['studentUserId'] = intval($_REQUEST['u']); | 
				
			||||
 | 
				
			||||
$params['user_id'] = $data['studentUserId']; | 
				
			||||
$params['session_id'] = $data['sessionId']; | 
				
			||||
$params['profile_completed'] = $data['profile_completed']; | 
				
			||||
$params['is_connected'] = $data['is_connected']; | 
				
			||||
$params['secret_key'] = 'secret_key'; | 
				
			||||
$result = $hookPlugin->WSSessionGetDetailsByUser($params); | 
				
			||||
echo '<pre>', print_r($result, 1) , '</pre>'; | 
				
			||||
if (is_array($result) && isset($result['action_url'])) { | 
				
			||||
    echo '<br />'; | 
				
			||||
    echo Display::url($result['message'], $result['action_url']); | 
				
			||||
} | 
				
			||||
 | 
				
			||||
 | 
				
			||||
					Loading…
					
					
				
		Reference in new issue