diff --git a/workflow/engine/methods/processes/processes_doUpload.php b/workflow/engine/methods/processes/processes_doUpload.php index 90dc80850..afe1d21ba 100644 --- a/workflow/engine/methods/processes/processes_doUpload.php +++ b/workflow/engine/methods/processes/processes_doUpload.php @@ -1,19 +1,20 @@ userCanAccess('PM_FACTORY') == 1) { - if (isset( $_SESSION['processes_upload'] )) { - $form = $_SESSION['processes_upload']; - G::LoadClass('processes'); - $app = new Processes(); - if (!$app->processExists($form['PRO_UID'])) { - $result = 0; - $msg = G::LoadTranslation('ID_PROCESS_UID_NOT_DEFINED'); - echo "{'result': $result, 'msg':'$msg'}"; - die; - } + +sleep(1); +global $RBAC; +if ($RBAC->userCanAccess('PM_FACTORY') == 1) { + if (isset($_SESSION['processes_upload'])) { + $form = $_SESSION['processes_upload']; + G::LoadClass('processes'); + $app = new Processes(); + if (!$app->processExists($form['PRO_UID'])) { + $result = 0; + $msg = G::LoadTranslation('ID_PROCESS_UID_NOT_DEFINED'); + echo "{'result': $result, 'msg':'$msg'}"; + die; + } switch ($form['MAIN_DIRECTORY']) { - case 'mailTemplates': + case 'mailTemplates': $sDirectory = PATH_DATA_MAILTEMPLATES . $form['PRO_UID'] . PATH_SEP . ($form['CURRENT_DIRECTORY'] != '' ? $form['CURRENT_DIRECTORY'] . PATH_SEP : ''); break; case 'public': @@ -22,18 +23,29 @@ if ( $RBAC->userCanAccess('PM_FACTORY') == 1) { default: die(); break; - } + } } - if ($_FILES['form']['error'] == "0") { - G::uploadFile( $_FILES['form']['tmp_name'], $sDirectory, $_FILES['form']['name'] ); - $msg = "Uploaded (" . (round( (filesize( $sDirectory . $_FILES['form']['name'] ) / 1024) * 10 ) / 10) . " kb)"; + $fileName = $_FILES['form']['name']; + $canUploadPhpFile = true; + $extension = pathinfo($fileName, PATHINFO_EXTENSION); + if (\Bootstrap::getDisablePhpUploadExecution() === 1 && $extension === 'php') { + $message = \G::LoadTranslation('THE_UPLOAD_OF_PHP_FILES_WAS_DISABLED'); + \Bootstrap::registerMonologPhpUploadExecution('phpUpload', 550, $message, $fileName); + $canUploadPhpFile = false; + } + + if ($_FILES['form']['error'] == "0" && $canUploadPhpFile) { + G::uploadFile($_FILES['form']['tmp_name'], $sDirectory, $fileName); + $msg = "Uploaded (" . (round((filesize($sDirectory . $fileName) / 1024) * 10) / 10) . " kb)"; $result = 1; - //echo $sDirectory.$_FILES['form']['name']; } else { $msg = "Failed"; + if ($canUploadPhpFile === false) { + $msg = $message; + } $result = 0; } - - echo "{'result': $result, 'msg':'$msg'}"; + + echo "{'result': $result, 'msg':'$msg'}"; } \ No newline at end of file diff --git a/workflow/engine/templates/processes/processes_Upload.php b/workflow/engine/templates/processes/processes_Upload.php index ec3884cb1..1d95ed0ba 100644 --- a/workflow/engine/templates/processes/processes_Upload.php +++ b/workflow/engine/templates/processes/processes_Upload.php @@ -1,123 +1,96 @@ - - - - - - - + + + - - - - - - - - -
-
  • -
    - - - -
     
    -
    -
  • -
    + } + + + + + + + + + +
    +
  • +
    + + + +
     
    +
    +
  • +