Viewing File: /usr/local/cpanel/whostmgr/docroot/cgi/softaculous/lib/panels/hc/auth/index.php

<?php
session_start();
if (isset($_POST['baseApiUrl']) && !empty($_POST['baseApiUrl'])){
	$baseurl = $_POST['baseApiUrl'];
	$_SESSION["baseApiUrl"] = $baseurl;
}else{
	if(isset($_SESSION["baseApiUrl"]) && !empty($_SESSION["baseApiUrl"])){
		$baseurl = $_SESSION["baseApiUrl"];
	}
	else{
		$baseurl =  "http://localhost:8798/";
	}
}

function getIp() {
// GET Client IP Address
 $ip;
 if (isset($_SERVER['REMOTE_ADDR']) && !empty($_SERVER['REMOTE_ADDR'])) {

 $ip = $_SERVER['REMOTE_ADDR'];

 } elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && !empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {

 $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
 
 }
 
 return $ip;
}

function Connect($endpointurl , $usertoken, $method = 'GET', $data=array()){
	global $baseurl;	
	$endpointurl = rtrim($baseurl,"/").$endpointurl;
	$ip = getIp();
	
	
	$headers = array(
		'Accept: application/json',
		'Content-Type: application/json',
		'Authorization : token '. $usertoken,
		'HTTP_HC_FORWARDED_IP : ' . $ip,
	);
	$handle = curl_init();
	curl_setopt($handle, CURLOPT_URL, $endpointurl);
	curl_setopt($handle, CURLOPT_RETURNTRANSFER,1);	
	curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);

	switch($method) {
		case 'GET':
			break;
		case 'POST':
			curl_setopt($handle, CURLOPT_POST, true);
			curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
			break;
		case 'PUT': 
			curl_setopt($handle, CURLOPT_CUSTOMREQUEST, 'PUT');
			curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
			break;
		case 'DELETE':
			curl_setopt($handle, CURLOPT_CUSTOMREQUEST, 'DELETE');
			break;
	}

	$response = curl_exec($handle);
		
	$httpErrorCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);
	return array("code" => $httpErrorCode, "body" => $response);
}

if (isset($_POST['token'])){
	$_SESSION["usertoken"] = $_POST['token'];
}else{
	$token1 = 0;
}

if (isset($_POST['websiteId'])){
	$_SESSION["websiteId"] = $_POST['websiteId'];
}

if (isset($_POST['userId'])){
	$_SESSION["userId"] = $_POST['userId'];
}

if (isset($_POST['level'])){
	 $_SESSION["level"] = $_POST['level'];
}

if ( !isset( $_SESSION["origURL"] ) ){
	$_SESSION["origURL"] = $_POST['basePanelUrl']; 
}

// if still not set
if ( !isset( $_SESSION["origURL"] ) && empty( $_SESSION["origURL"] ) ){
	$_SESSION["origURL"] = $_SERVER["HTTP_REFERER"];
}

	
$userurl = '/panel-users/'.$_SESSION["userId"];
$httpresponse = Connect($userurl, $_SESSION["usertoken"]);
	
if($httpresponse["code"] != 200){
	session_destroy();
	die("User Detail not found");
	return "Failed to retrieve database Details.".$this->HC_FormateErrorMsg($httpresponse);
}

$userdatacode = json_decode($httpresponse["body"]);
$userId = $userdatacode->UserId; 
$role = $userdatacode->RoleName; 
$ownerId = $userdatacode->OwnerId;

//TO refresh Softaculous Task List in sync with the ongoing process in Softaculous
session_write_close();

if($userId > 0 && is_int($ownerId) &&  $ownerId == 0 && $role == 'Global Admin' &&  (empty($_SESSION["websiteId"]) ||  $_SESSION["websiteId"] <= 0) && (!empty($_SESSION["level"]) && $_SESSION["level"] == 'admin') ){
	include_once('../setup/index.php');
}else{
	include_once('../setup/enduser/inc.php');
}
?>
Back to Directory