Prevent Apache access error due to directories being 0700

This commit is contained in:
the-djmaze 2023-02-06 15:47:26 +01:00
parent 67b13e5b1b
commit 8af68d7c65
2 changed files with 35 additions and 0 deletions

View file

@ -26,7 +26,10 @@ class InstallStep implements IRepairStep
\OCA\SnappyMail\Util\SnappyMailHelper::loadApp();
\SnappyMail\Upgrade::fixPermissions();
$app_dir = \dirname(\dirname(__DIR__)) . '/app';
// $app_dir = \rtrim(APP_INDEX_ROOT_PATH, '\\/');
// https://github.com/the-djmaze/snappymail/issues/790#issuecomment-1366527884
if (!\file_exists($app_dir . '/.htaccess') && \file_exists($app_dir . '/_htaccess')) {

View file

@ -209,6 +209,9 @@ abstract class Upgrade
if (!$bResult) {
throw new \Exception('Extract core files failed');
}
static::fixPermissions();
\error_log('Update success');
// opcache_reset is a terrible solution
// \is_callable('opcache_reset') && \opcache_reset();
@ -219,4 +222,33 @@ abstract class Upgrade
}
return $bResult;
}
// Prevents Apache access error due to directories being 0700
public static function fixPermissions($mode = 0755) : void
{
$target = \rtrim(APP_INDEX_ROOT_PATH, '\\/');
// Prevent Apache access error due to directories being 0700
foreach (\glob("{$target}/snappymail/v/*", \GLOB_ONLYDIR) as $dir) {
\chmod($dir, 0755);
$iterator = new \RecursiveIteratorIterator(
new \RecursiveDirectoryIterator("{$dir}/static", \FilesystemIterator::SKIP_DOTS),
\RecursiveIteratorIterator::SELF_FIRST
);
foreach ($items as $item) {
if ($item->isDir()) {
\chmod($item, 0755);
}
}
$iterator = new \RecursiveIteratorIterator(
new \RecursiveDirectoryIterator("{$dir}/themes", \FilesystemIterator::SKIP_DOTS),
\RecursiveIteratorIterator::SELF_FIRST
);
foreach ($items as $item) {
if ($item->isDir()) {
\chmod($item, 0755);
}
}
}
}
}