$url, 'result' => '', ]; } $curlObj = curl_init($url); if (empty($data) === false) { $url .= http_build_query($data); } // set the content type json $headers = [ 'Content-Type: application/json', 'Authorization: Bearer '.$token, ]; curl_setopt($curlObj, CURLOPT_URL, $url); curl_setopt($curlObj, CURLOPT_HTTPHEADER, $headers); curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($curlObj); curl_close($curlObj); return [ 'url' => $url, 'result' => $result, ]; } /** * Perform API Checker * * @return void. */ function extension_api_checker() { global $config; check_login(); if ((bool) check_acl($config['id_user'], 0, 'PM') === false) { db_pandora_audit( AUDIT_LOG_ACL_VIOLATION, 'Trying to access Profile Management' ); include 'general/noaccess.php'; return; } $url = io_safe_output(get_parameter('url', '')); $ip = io_safe_output(get_parameter('ip', '127.0.0.1')); $pandora_url = io_safe_output(get_parameter('pandora_url', $config['homeurl_static'])); $apipass = io_safe_output(get_parameter('apipass', '')); $user = io_safe_output(get_parameter('user', $config['id_user'])); $password = io_safe_output(get_parameter('password', '')); $op = io_safe_output(get_parameter('op', 'get')); $op2 = io_safe_output(get_parameter('op2', 'test')); $id = io_safe_output(get_parameter('id', '')); $id2 = io_safe_output(get_parameter('id2', '')); $return_type = io_safe_output(get_parameter('return_type', '')); $other = io_safe_output(get_parameter('other', '')); $other_mode = io_safe_output(get_parameter('other_mode', 'url_encode_separator_|')); $token = get_parameter('token'); $api_execute = (bool) get_parameter('api_execute', false); $return_call_api = ''; if ($api_execute === true) { $return_call_api = api_execute( $url, $ip, $pandora_url, $apipass, $user, $password, $op, $op2, urlencode($id), urlencode($id2), $return_type, urlencode($other), $other_mode, $token ); } ui_print_page_header( __('API checker'), 'images/extensions.png', false, '', true, '' ); $table = new stdClass(); $table->data = []; $row = []; $row[] = __('IP'); $row[] = html_print_input_text('ip', $ip, '', 50, 255, true); $table->data[] = $row; $row = []; $row[] = __('%s Console URL', get_product_name()); $row[] = html_print_input_text('pandora_url', $pandora_url, '', 50, 255, true); $table->data[] = $row; $row = []; $row[] = __('API Token').ui_print_help_tip(__('Use API Token instead API Pass, User and Password.'), true); $row[] = html_print_input_text('token', $token, '', 50, 255, true); $table->data[] = $row; $row = []; $row[] = __('API Pass'); $row[] = html_print_input_password('apipass', $apipass, '', 50, 255, true); $table->data[] = $row; $row = []; $row[] = __('User'); $row[] = html_print_input_text('user', $user, '', 50, 255, true); $table->data[] = $row; $row = []; $row[] = __('Password'); $row[] = html_print_input_password('password', $password, '', 50, 255, true); $table->data[] = $row; $table2 = new stdClass(); $table2->data = []; $row = []; $row[] = __('Action (get or set)'); $row[] = html_print_input_text('op', $op, '', 50, 255, true); $table2->data[] = $row; $row = []; $row[] = __('Operation'); $row[] = html_print_input_text('op2', $op2, '', 50, 255, true); $table2->data[] = $row; $row = []; $row[] = __('ID'); $row[] = html_print_input_text('id', $id, '', 50, 255, true); $table2->data[] = $row; $row = []; $row[] = __('ID 2'); $row[] = html_print_input_text('id2', $id2, '', 50, 255, true); $table2->data[] = $row; $row = []; $row[] = __('Return Type'); $row[] = html_print_input_text('return_type', $return_type, '', 50, 255, true); $table2->data[] = $row; $row = []; $row[] = __('Other'); $row[] = html_print_input_text('other', $other, '', 50, 255, true); $table2->data[] = $row; $row = []; $row[] = __('Other Mode'); $row[] = html_print_input_text('other_mode', $other_mode, '', 50, 255, true); $table2->data[] = $row; $table3 = new stdClass(); $table3->data = []; $row = []; $row[] = __('Raw URL'); $row[] = html_print_input_text('url', $url, '', 50, 2048, true); $table3->data[] = $row; echo "
"; echo '
'; echo ''.__('Credentials').''; html_print_table($table); echo '
'; echo '
'; echo ''.__('Call parameters').' '.ui_print_help_tip(__('Action: get Operation: module_last_value id: 63'), true).''; html_print_table($table2); echo '
'; echo "
"; echo '
'; echo '
'; echo ''.__('Custom URL').''; html_print_table($table3); echo '
'; echo "
"; html_print_input_hidden('api_execute', 1); html_print_submit_button(__('Call'), 'submit', false, 'class="sub next"'); echo '
'; echo '
'; if ($api_execute === true) { echo '
'; echo ''.__('Result').''; echo __('URL').'
'; html_print_input_password('url', $return_call_api['url'], '', 150, 255, false, true); echo " "; html_print_image('images/input_zoom.png'); echo ''; echo '
'; echo __('Result').'
'; html_print_textarea('result', 30, 20, $return_call_api['result'], 'readonly="readonly"'); echo '
'; } ?>