From 3f221878e8ef022ce97b0194eb5ce0f54cdeb84e Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Mon, 11 Jan 2021 13:10:39 +0200 Subject: [PATCH] file manager change --- application/Espo/Core/ContainerBuilder.php | 4 +++- .../Espo/Core/Log/Handler/EspoFileHandler.php | 12 +++++++++++- .../Espo/Core/Utils/Config/ConfigFileManager.php | 4 +++- application/Espo/Core/Utils/File/Manager.php | 6 +++--- tests/unit/Espo/Core/Utils/File/ManagerTest.php | 7 ++++--- 5 files changed, 24 insertions(+), 9 deletions(-) diff --git a/application/Espo/Core/ContainerBuilder.php b/application/Espo/Core/ContainerBuilder.php index 4d9c54be30..a01bd327e5 100644 --- a/application/Espo/Core/ContainerBuilder.php +++ b/application/Espo/Core/ContainerBuilder.php @@ -139,7 +139,9 @@ class ContainerBuilder ); $fileManager = $this->services['fileManager'] ?? ( - new $this->fileManagerClassName($config) + new $this->fileManagerClassName( + $config->get('defaultPermissions') + ) ); $dataCache = $this->services['dataCache'] ?? ( diff --git a/application/Espo/Core/Log/Handler/EspoFileHandler.php b/application/Espo/Core/Log/Handler/EspoFileHandler.php index 2c19f70f39..eb3e9cdd18 100644 --- a/application/Espo/Core/Log/Handler/EspoFileHandler.php +++ b/application/Espo/Core/Log/Handler/EspoFileHandler.php @@ -45,11 +45,21 @@ class EspoFileHandler extends MonologStreamHandler protected $maxErrorMessageLength = 5000; + protected $configPath = 'data/config.php'; + public function __construct(string $filename, $level = Logger::DEBUG, bool $bubble = true) { parent::__construct($filename, $level, $bubble); - $this->fileManager = new FileManager(); + $defaultPermissions = null; + + if (file_exists($this->configPath)) { + $configData = include $this->configPath; + + $defaultPermissions = $configData['defaultPermissions'] ?? null; + } + + $this->fileManager = new FileManager($defaultPermissions); } protected function write(array $record): void diff --git a/application/Espo/Core/Utils/Config/ConfigFileManager.php b/application/Espo/Core/Utils/Config/ConfigFileManager.php index ed93d625e2..a4570c93d5 100644 --- a/application/Espo/Core/Utils/Config/ConfigFileManager.php +++ b/application/Espo/Core/Utils/Config/ConfigFileManager.php @@ -45,7 +45,9 @@ class ConfigFileManager public function setConfig(Config $config) { - $this->fileManager = new FileManager($config); + $this->fileManager = new FileManager( + $config->get('defaultPermissions') + ); } public function isFile(string $filePath) : bool diff --git a/application/Espo/Core/Utils/File/Manager.php b/application/Espo/Core/Utils/File/Manager.php index 85584443c5..5a2d2e3b6a 100644 --- a/application/Espo/Core/Utils/File/Manager.php +++ b/application/Espo/Core/Utils/File/Manager.php @@ -55,13 +55,13 @@ class Manager const GET_SAFE_CONTENTS_RETRY_INTERVAL = 0.1; - public function __construct(?Config $config = null) + public function __construct(?array $defaultPermissions = null) { $params = null; - if (isset($config)) { + if ($defaultPermissions) { $params = [ - 'defaultPermissions' => $config->get('defaultPermissions'), + 'defaultPermissions' => $defaultPermissions, ]; } diff --git a/tests/unit/Espo/Core/Utils/File/ManagerTest.php b/tests/unit/Espo/Core/Utils/File/ManagerTest.php index bff0402398..452223235c 100644 --- a/tests/unit/Espo/Core/Utils/File/ManagerTest.php +++ b/tests/unit/Espo/Core/Utils/File/ManagerTest.php @@ -28,8 +28,11 @@ ************************************************************************/ namespace tests\unit\Espo\Core\Utils\File; + use tests\unit\ReflectionHelper; + use Espo\Core\Utils\Util; +use Espo\Core\Utils\File\Manager as FileManager; class ManagerTest extends \PHPUnit\Framework\TestCase { @@ -44,9 +47,7 @@ class ManagerTest extends \PHPUnit\Framework\TestCase protected function setUp() : void { - $this->objects['config'] = $this->getMockBuilder('\Espo\Core\Utils\Config')->disableOriginalConstructor()->getMock(); - - $this->object = new \Espo\Core\Utils\File\Manager(); + $this->object = new FileManager(); $this->reflection = new ReflectionHelper($this->object); }