$_FILES = $filter->xssFilterHard($_FILES);
$_SESSION['USER_LOGGED'] = $filter->xssFilterHard($_SESSION['USER_LOGGED']);
if (isset($_FILES["PROCESS_FILENAME"]) && pathinfo($_FILES["PROCESS_FILENAME"]["name"], PATHINFO_EXTENSION) == "bpmn") {
    try {
        $createMode = $_REQUEST["createMode"];
        $createMode = $filter->xssFilterHard($createMode);
        $name = pathinfo($_FILES["PROCESS_FILENAME"]["name"], PATHINFO_FILENAME);
        $data = array("type" => "bpmnProject", "PRO_TITLE" => $name, "PRO_DESCRIPTION" => "", "PRO_CATEGORY" => "", "PRO_CREATE_USER" => $_SESSION['USER_LOGGED']);
        if ($createMode === "overwrite") {
            $process = Process::getByProTitle($data["PRO_TITLE"]);
            if ($process !== null) {
                $oProcess = new Process();
                $oProcess->remove($process["PRO_UID"]);
            }
        }
        if ($createMode === "rename") {
            $data["PRO_TITLE"] = Process::getNextTitle($data["PRO_TITLE"]);
        }
        $project = new \ProcessMaker\Project\Adapter\WorkflowBpmn($data);
        copy($_FILES["PROCESS_FILENAME"]["tmp_name"], PATH_DOCUMENT . $project->getUid());
        $result = array("success" => true, "catchMessage" => "", "prj_uid" => $project->getUid(), "createMode" => $createMode);
    } catch (Exception $e) {
        $result = array("success" => "confirm", "catchMessage" => $e->getMessage(), "createMode" => $createMode);
    }
    echo G::json_encode($result);
    exit(0);
} else {
    $result = array("success" => "error", "catchMessage" => G::LoadTranslation("ID_FILE_UPLOAD_INCORRECT_EXTENSION"));
    echo G::json_encode($result);
    exit(0);
}
Exemplo n.º 2
0
    /**
     * @url POST /generate-bpmn
     *
     * @param array $request_data
     *
     * @status 201
     */
    public function doPostGenerateBpmn(array $request_data)
    {
        try {
            //Set data
            $request_data = array_change_key_case($request_data, CASE_UPPER);

            //Verify data
            $process = new \ProcessMaker\BusinessModel\Process();

            $process->throwExceptionIfDataNotMetFieldDefinition(
                $request_data,
                array("PRO_UID" => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "processUid")),
                array("processUid" => "pro_uid"),
                true
            );

            //Generate BPMN
            $workflowBpmn = new \ProcessMaker\Project\Adapter\WorkflowBpmn();

            $projectUid = $workflowBpmn->generateBpmn($request_data["PRO_UID"], "pro_uid", $this->getUserId());

            $arrayData = array_change_key_case(array_merge(array("PRJ_UID" => $projectUid), $request_data), CASE_LOWER);

            $response = $arrayData;

            return $response;
        } catch (\Exception $e) {
            throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
        }
    }
Exemplo n.º 3
0
 /**
  * Generate BPMN (New record is generated)
  *
  * return void
  */
 public function generateBpmn()
 {
     try {
         $processUid = $_POST["processUid"];
         $workflowBpmn = new \ProcessMaker\Project\Adapter\WorkflowBpmn();
         $projectUid = $workflowBpmn->generateBpmn($processUid, "processUid", $_SESSION["USER_LOGGED"]);
         $this->status = "OK";
         $this->projectUid = $projectUid;
     } catch (Exception $e) {
         $this->status = "ERROR";
         $this->message = $e->getMessage();
     }
 }