diff --git a/workflow/engine/src/ProcessMaker/Importer/Importer.php b/workflow/engine/src/ProcessMaker/Importer/Importer.php index 701f3e326..f3d946fa5 100644 --- a/workflow/engine/src/ProcessMaker/Importer/Importer.php +++ b/workflow/engine/src/ProcessMaker/Importer/Importer.php @@ -14,6 +14,7 @@ abstract class Importer protected $filename = ""; protected $saveDir = ""; protected $metadata = array(); + protected $prjCreateUser = ''; /** * Title of the process before being updated/deleted. * @var string @@ -494,6 +495,7 @@ abstract class Importer $project["diagrams"] = array($diagram); $project["prj_author"] = isset($this->data["usr_uid"])? $this->data["usr_uid"]: "00000000000000000000000000000001"; $project["process"] = $tables["process"][0]; + $project["prjCreateUser"] = $this->prjCreateUser; return Adapter\BpmnWorkflow::createFromStruct($project, $generateUid); } @@ -761,7 +763,7 @@ abstract class Importer } } - public function saveAs($prj_uid, $prj_name, $prj_description, $prj_category) + public function saveAs($prj_uid, $prj_name, $prj_description, $prj_category, $prj_user = '') { try { $exporter = new \ProcessMaker\Exporter\XmlExporter($prj_uid); @@ -779,6 +781,7 @@ abstract class Importer $this->setSourceFile($outputFilename); $this->prepare(); + $this->prjCreateUser = $prj_user; $this->importData["tables"]["bpmn"]["project"][0]["prj_name"] = $prj_name; $this->importData["tables"]["bpmn"]["project"][0]["prj_description"] = $prj_description; $this->importData["tables"]["bpmn"]["diagram"][0]["dia_name"] = $prj_name; diff --git a/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php b/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php index 39b656dcc..1205fa62b 100644 --- a/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php +++ b/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php @@ -94,6 +94,10 @@ class BpmnWorkflow extends Project\Bpmn $wpData["PRO_STATUS"] = $data["PRO_STATUS"]; } + if (array_key_exists("PRO_CREATE_USER", $data)) { + $wpData["PRO_CREATE_USER"] = $data["PRO_CREATE_USER"]; + } + $this->wp = new Project\Workflow(); $this->wp->create($wpData); @@ -1318,6 +1322,10 @@ class BpmnWorkflow extends Project\Bpmn $data["PRO_STATUS"] = $projectData['pro_status']; } + if (isset($projectData['prjCreateUser'])){ + $data["PRO_CREATE_USER"] = $projectData['prjCreateUser']; + } + $bwp->create($data); $diagramData = $processData = array(); diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Project.php b/workflow/engine/src/ProcessMaker/Services/Api/Project.php index 6c080741c..78114a200 100644 --- a/workflow/engine/src/ProcessMaker/Services/Api/Project.php +++ b/workflow/engine/src/ProcessMaker/Services/Api/Project.php @@ -221,7 +221,7 @@ class Project extends Api public function doSaveAs($prj_uid, $prj_name, $prj_description = null, $prj_category = null) { $importer = new \ProcessMaker\Importer\XmlImporter(); - return $importer->saveAs($prj_uid, $prj_name, $prj_description, $prj_category); + return $importer->saveAs($prj_uid, $prj_name, $prj_description, $prj_category, $this->getUserId()); } /**