diff options
author | Joas Schilling <coding@schilljs.com> | 2019-11-29 14:04:34 +0300 |
---|---|---|
committer | Joas Schilling <coding@schilljs.com> | 2019-12-10 11:11:43 +0300 |
commit | 4a151c545a6f255f8d8e293cbd673fadc518391e (patch) | |
tree | 16ed8261d05b15c24d44cabac1b9365c82b0d465 /apps/workflowengine/lib | |
parent | 511a4ba66fdf27f7ab48c37fd3faf12b4f2ef089 (diff) |
Allow to specify apps that somethign is a dir
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'apps/workflowengine/lib')
-rw-r--r-- | apps/workflowengine/lib/Check/FileMimeType.php | 12 | ||||
-rw-r--r-- | apps/workflowengine/lib/Check/TFileCheck.php | 7 | ||||
-rw-r--r-- | apps/workflowengine/lib/Service/RuleMatcher.php | 5 |
3 files changed, 18 insertions, 6 deletions
diff --git a/apps/workflowengine/lib/Check/FileMimeType.php b/apps/workflowengine/lib/Check/FileMimeType.php index 25c4ed28b47..77463d8960a 100644 --- a/apps/workflowengine/lib/Check/FileMimeType.php +++ b/apps/workflowengine/lib/Check/FileMimeType.php @@ -57,12 +57,18 @@ class FileMimeType extends AbstractStringCheck implements IFileCheck { /** * @param IStorage $storage * @param string $path + * @param bool $isDir */ - public function setFileInfo(IStorage $storage, string $path) { - $this->_setFileInfo($storage, $path); + public function setFileInfo(IStorage $storage, string $path, bool $isDir = false): void { + $this->_setFileInfo($storage, $path, $isDir); if (!isset($this->mimeType[$this->storage->getId()][$this->path]) || $this->mimeType[$this->storage->getId()][$this->path] === '') { - $this->mimeType[$this->storage->getId()][$this->path] = null; + + if ($isDir) { + $this->mimeType[$this->storage->getId()][$this->path] = 'httpd/unix-directory'; + } else { + $this->mimeType[$this->storage->getId()][$this->path] = null; + } } } diff --git a/apps/workflowengine/lib/Check/TFileCheck.php b/apps/workflowengine/lib/Check/TFileCheck.php index 383c2d4ef5f..afaf46b52bf 100644 --- a/apps/workflowengine/lib/Check/TFileCheck.php +++ b/apps/workflowengine/lib/Check/TFileCheck.php @@ -37,14 +37,19 @@ trait TFileCheck { /** @var string */ protected $path; + /** @var bool */ + protected $isDir; + /** * @param IStorage $storage * @param string $path + * @param bool $isDir * @since 18.0.0 */ - public function setFileInfo(IStorage $storage, string $path) { + public function setFileInfo(IStorage $storage, string $path, bool $isDir = false): void { $this->storage = $storage; $this->path = $path; + $this->isDir = $isDir; } /** diff --git a/apps/workflowengine/lib/Service/RuleMatcher.php b/apps/workflowengine/lib/Service/RuleMatcher.php index 16f0e486aaa..b08bcbbe56b 100644 --- a/apps/workflowengine/lib/Service/RuleMatcher.php +++ b/apps/workflowengine/lib/Service/RuleMatcher.php @@ -71,9 +71,10 @@ class RuleMatcher implements IRuleMatcher { $this->l = $l; } - public function setFileInfo(IStorage $storage, string $path): void { + public function setFileInfo(IStorage $storage, string $path, bool $isDir = false): void { $this->fileInfo['storage'] = $storage; $this->fileInfo['path'] = $path; + $this->fileInfo['isDir'] = $isDir; } public function setEntitySubject(IEntity $entity, $subject): void { @@ -168,7 +169,7 @@ class RuleMatcher implements IRuleMatcher { if (empty($this->fileInfo)) { throw new RuntimeException('Must set file info before running the check'); } - $checkInstance->setFileInfo($this->fileInfo['storage'], $this->fileInfo['path']); + $checkInstance->setFileInfo($this->fileInfo['storage'], $this->fileInfo['path'], $this->fileInfo['isDir']); } elseif ($checkInstance instanceof IEntityCheck) { foreach($this->contexts as $entityInfo) { list($entity, $subject) = $entityInfo; |