Issue:
Change folder permissions in ProcessMaker
Cause:
Nuevo requerimiento
Solution:
Se cambio los permisos de los files and directories
73 lines
2.7 KiB
PHP
73 lines
2.7 KiB
PHP
<?php
|
|
$ipaddress = $_SERVER['REMOTE_ADDR'];
|
|
try {
|
|
$aux = explode( '|', $_GET['id'] );
|
|
|
|
$index = 0;
|
|
$ObjUid = str_replace( '"', '', $aux[$index ++] );
|
|
if (isset( $_GET['v'] ))
|
|
$versionReq = $_GET['v'];
|
|
|
|
//downloading the file
|
|
$localPath = PATH_DOCUMENT . 'input' . PATH_SEP;
|
|
G::mk_dir( $localPath );
|
|
$newfilename = G::GenerateUniqueId() . '.pm';
|
|
|
|
$downloadUrl = PML_DOWNLOAD_URL . '?id=' . $ObjUid . (isset( $_GET['s'] ) ? '&s=' . $_GET['s'] : '');
|
|
//print "<hr>$downloadUrl<hr>";die;
|
|
|
|
|
|
G::LoadClass( 'processes' );
|
|
$oProcess = new Processes();
|
|
$oProcess->downloadFile( $downloadUrl, $localPath, $newfilename );
|
|
|
|
//getting the ProUid from the file recently downloaded
|
|
$oData = $oProcess->getProcessData( $localPath . $newfilename );
|
|
if (is_null( $oData )) {
|
|
throw new Exception( G::LoadTranslation( 'ID_ERROR' ) );
|
|
}
|
|
$Fields['IMPORT_OPTION'] = 2;
|
|
$Fields['PRO_FILENAME'] = $newfilename;
|
|
$Fields['OBJ_UID'] = $ObjUid;
|
|
$sProUid = $oData->process['PRO_UID'];
|
|
$oData->process['PRO_UID_OLD'] = $sProUid;
|
|
//print $sProUid;die;
|
|
//if the process exists, we need to ask what kind of re-import the user wants,
|
|
if ($oProcess->processExists( $sProUid )) {
|
|
$G_MAIN_MENU = 'processmaker';
|
|
$G_ID_MENU_SELECTED = 'PROCESSES';
|
|
$G_PUBLISH = new Publisher();
|
|
$G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'processes/processes_ImportExisting', '', $Fields, 'downloadPML_ImportExisting' );
|
|
G::RenderPage( 'publish', 'blank' );
|
|
die();
|
|
}
|
|
|
|
//creating the process
|
|
$oProcess->createProcessFromData( $oData, $localPath . $newfilename );
|
|
|
|
//show the info after the imported process
|
|
G::LoadClass( 'processes' );
|
|
$oProcess = new Processes();
|
|
$oProcess->ws_open_public();
|
|
$processData = $oProcess->ws_processGetData( $ObjUid );
|
|
|
|
$Fields['pro_title'] = $processData->title;
|
|
$Fields['installSteps'] = nl2br( $processData->installSteps );
|
|
$Fields['category'] = (isset( $processData->category ) ? $processData->category : '');
|
|
$Fields['version'] = $processData->version;
|
|
$G_MAIN_MENU = 'processmaker';
|
|
$G_ID_MENU_SELECTED = 'PROCESSES';
|
|
$G_PUBLISH = new Publisher();
|
|
$Fields['PRO_UID'] = $sProUid;
|
|
$processmapLink = "processes_Map?PRO_UID=$sProUid";
|
|
$G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'processes/processes_ImportSucessful', '', $Fields, $processmapLink );
|
|
G::RenderPage( 'publish', 'blank' );
|
|
die();
|
|
|
|
} catch (Exception $e) {
|
|
$G_PUBLISH = new Publisher();
|
|
$aMessage['MESSAGE'] = $e->getMessage();
|
|
$G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'login/showMessage', '', $aMessage );
|
|
G::RenderPage( 'publish', 'blank' );
|
|
}
|