diff --git a/workflow/engine/controllers/InstallerModule.php b/workflow/engine/controllers/InstallerModule.php index 0e3a4a040..2371d4f9c 100644 --- a/workflow/engine/controllers/InstallerModule.php +++ b/workflow/engine/controllers/InstallerModule.php @@ -360,15 +360,15 @@ class InstallerModule extends Controller $info->pathPublic = new stdclass(); - $info->pathShared = new stdclass(); $info->pathPublic->message = $noWritable; $info->pathPublic->result = G::is_writable_r($_REQUEST['pathPublic'], $noWritableFiles); if ($info->pathPublic->result) { - $info->pathShared->message = $writable; + $info->pathPublic->message = $writable; } else { $info->success = false; } + $info->pathShared = new stdclass(); $info->pathShared->message = $noWritable; $info->pathShared->result = G::is_writable_r($_REQUEST['pathShared'], $noWritableFiles); if ($info->pathShared->result) { @@ -379,11 +379,11 @@ class InstallerModule extends Controller $info->pathShared->result = G::is_writable_r($_REQUEST['pathShared'], $noWritableFiles); if ($info->pathShared->result) { $info->pathShared->message = $writable; - $info->success = $this->verifySharedFrameworkPaths($_REQUEST['pathShared']); } else { $info->success = false; } } + $info->pathShared->result = $this->verifySharedFrameworkPaths($_REQUEST['pathShared']); $filter = new InputFilter(); $pathShared = $filter->validateInput($_REQUEST['pathShared'], 'path'); @@ -1317,7 +1317,12 @@ class InstallerModule extends Controller */ private function verifySharedFrameworkPaths($sharedPath) { + // Check if $sharedPath ends with a slash and append if necessary + if (substr($sharedPath, -1) !== DIRECTORY_SEPARATOR) { + $sharedPath .= DIRECTORY_SEPARATOR; + } $paths = [ + $sharedPath . 'fonts' => 0770, $sharedPath . 'framework' => 0770, $sharedPath . 'framework' . DIRECTORY_SEPARATOR . 'cache' => 0770, ];