Gateway File for VtigerCRM Workflow Designer HTTP Handler
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Workflow Designer Gateway Script | |
* Version: 1.00 | |
* Author: Redoo Networks GmbH | |
* | |
**/ | |
$url = '<shorturl-workflowdesigner>&workflow_id=1'; | |
/** | |
// You are able to integrate a layer, which prevent public users from calling every shared workflow ID | |
if(!empty($_REQUEST['p'])) { | |
@unset($_REQUEST['workflow_id']); | |
switch($_REQUEST['p']) { | |
case 'dl': | |
$url = '<shorturl-workflowdesigner>&workflow_id=1'; | |
break; | |
default: | |
$url = '<shorturl-workflowdesigner>&workflow_id=2'; | |
break; | |
} | |
} | |
*/ | |
$params = $_REQUEST; | |
$removeFiles = array(); | |
//open connection | |
$ch = curl_init(); | |
/** | |
Adjust CURL Options here | |
**/ | |
curl_setopt($ch, CURLOPT_URL, $url); | |
curl_setopt($ch, CURLOPT_POST, 1); | |
curl_setopt($ch, CURLOPT_POSTFIELDS, $params); | |
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); | |
curl_setopt($ch, CURLOPT_HEADER, true); | |
$result = curl_exec($ch); | |
$info = curl_getinfo($ch); | |
curl_close($ch); | |
$header = substr($result, 0, $info['header_size']); | |
$body = substr($result, $info['header_size']); | |
if(strpos($body, 'ACCESS_DENIED') !== false) { | |
echo '<p style="text-align:center;font-size:16px;font-weight:bold;">Please configure HTTP Handler to permit IP '.trim(str_replace('ACCESS_DENIED for', '', $body)).'</p>'; | |
exit(); | |
} | |
$reDispo = '/^Content-Disposition: .*?filename=(?<f>[^\s]+|\x22[^\x22]+\x22)\x3B?.*$/m'; | |
if (preg_match($reDispo, $header, $mDispo)) | |
{ | |
$filename = trim($mDispo['f'],' ";'); | |
} else { | |
//var_dump($body); | |
$body = json_decode($body, true); | |
if(!empty($body['redirect'])) { | |
header('Location:'.$body['redirect']); | |
exit(); | |
} | |
if(!empty($_REQUEST['redirect'])) { | |
header('Location:'.$body['redirect']); | |
exit(); | |
} | |
exit(); | |
} | |
header('Content-Type:application/octet-stream'); | |
header('Content-Length:'.strlen($body)); | |
header('Content-Disposition: attachment; filename="'.$filename.'"'); | |
echo $body; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment