$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); if ($url !== '') { $validate_url = parse_url($url); if ($validate_url['scheme'] === 'http' || $validate_url['scheme'] === 'https') { ui_print_success_message(__('Request successfully processed')); } else { ui_print_error_message(__('Incorrect URL')); $url = ''; $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 ); } // Header. ui_print_standard_header( __('Extensions'), 'images/extensions.png', false, '', true, [], [ [ 'link' => '', 'label' => __('Admin tools'), ], [ 'link' => '', 'label' => __('Extension manager'), ], [ 'link' => '', 'label' => __('API checker'), ], ] ); $table = new stdClass(); $table->width = '100%'; $table->class = 'databox filters filter-table-adv'; $table->size[0] = '50%'; $table->size[1] = '50%'; $table->data = []; $row = []; $row[] = html_print_label_input_block( __('IP'), html_print_input_text('ip', $ip, '', 50, 255, true) ); $row[] = html_print_label_input_block( __('%s Console URL', get_product_name()), html_print_input_text('pandora_url', $pandora_url, '', 50, 255, true) ); $table->data[] = $row; $row = []; $row[] = html_print_label_input_block( __('API Token').ui_print_help_tip(__('Use API Token instead API Pass, User and Password.'), true), html_print_input_text('token', $token, '', 50, 255, true) ); $row[] = html_print_label_input_block( __('API Pass'), html_print_input_password('apipass', $apipass, '', 50, 255, true) ); $table->data[] = $row; $row = []; $row[] = html_print_label_input_block( __('User'), html_print_input_text('user', $user, '', 50, 255, true) ); $row[] = html_print_label_input_block( __('Password'), html_print_input_password('password', $password, '', 50, 255, true) ); $table->data[] = $row; $table2 = new stdClass(); $table2->width = '100%'; $table2->class = 'databox filters filter-table-adv'; $table2->size[0] = '50%'; $table2->size[1] = '50%'; $table2->data = []; $row = []; $row[] = html_print_label_input_block( __('Action (get or set)'), html_print_input_text('op', $op, '', 50, 255, true) ); $row[] = html_print_label_input_block( __('Operation'), html_print_input_text('op2', $op2, '', 50, 255, true) ); $table2->data[] = $row; $row = []; $row[] = html_print_label_input_block( __('ID'), html_print_input_text('id', $id, '', 50, 255, true) ); $row[] = html_print_label_input_block( __('ID 2'), html_print_input_text('id2', $id2, '', 50, 255, true) ); $table2->data[] = $row; $row = []; $row[] = html_print_label_input_block( __('Return Type'), html_print_input_text('return_type', $return_type, '', 50, 255, true) ); $row[] = html_print_label_input_block( __('Other'), html_print_input_text('other', $other, '', 50, 255, true) ); $table2->data[] = $row; $row = []; $row[] = html_print_label_input_block( __('Other Mode'), html_print_input_text('other_mode', $other_mode, '', 50, 255, true) ); $table2->data[] = $row; $table3 = new stdClass(); $table3->width = '100%'; $table3->class = 'databox filters filter-table-adv'; $table3->size[0] = '50%'; $table3->size[1] = '50%'; $table3->data = []; $row = []; $row[] = html_print_label_input_block( __('Raw URL'), html_print_input_text('url', $url, '', 50, 2048, true) ); $table3->data[] = $row; echo "
'; if ($api_execute === true) { echo ''; } ?>