diff options
author | Matthias <ilovemilk@wusa.io> | 2020-03-29 20:06:37 +0300 |
---|---|---|
committer | Matthias <ilovemilk@wusa.io> | 2020-03-29 20:06:37 +0300 |
commit | 1cbc676f20f9f0d983df4ee1f6deceb0df922d08 (patch) | |
tree | 48618d2f4ebe5928685b063216c1489613e7be56 | |
parent | 1bee2eee08ec714efe15265f109f6c59d1773ff6 (diff) |
check if file or folder is created
-rw-r--r-- | lib/Monitor.php | 64 |
1 files changed, 38 insertions, 26 deletions
diff --git a/lib/Monitor.php b/lib/Monitor.php index 06f1d56..dc5aa1e 100644 --- a/lib/Monitor.php +++ b/lib/Monitor.php @@ -138,7 +138,7 @@ class Monitor $path = $paths[0]; $storage = $this->rootFolder->getUserFolder($this->userId)->get(dirname($path))->getStorage(); - if ($this->userId === null || $this->nestingLevel !== 0 /*|| !$this->isUploadedFile($storage, $path)*/ || $this->isCreatingSkeletonFiles()) { + if ($this->userId === null || $this->nestingLevel !== 0 || /*!$this->isUploadedFile($storage, $path) ||*/ $this->isCreatingSkeletonFiles()) { // check only cloud files and no system files return; } @@ -243,34 +243,46 @@ class Monitor return; case self::CREATE: $this->logger->error("Create", ['app' => Application::APP_ID]); - // only folders are created - // reset PROPFIND_COUNT $this->resetProfindCount(); - $fileOperation = new FileOperation(); - $fileOperation->setUserId($this->userId); - $fileOperation->setPath(str_replace('files', '', pathinfo($path)['dirname'])); - $fileOperation->setOriginalName(pathinfo($path)['basename']); - $fileOperation->setType('folder'); - $fileOperation->setMimeType('httpd/unix-directory'); - $fileOperation->setSize(0); - $fileOperation->setTimestamp(time()); - $fileOperation->setCorrupted(false); - $fileOperation->setCommand(self::CREATE); - $sequenceId = $this->config->getUserValue($this->userId, Application::APP_ID, 'sequence_id', 0); - $fileOperation->setSequence($sequenceId); - - // entropy analysis - $fileOperation->setEntropy(0.0); - $fileOperation->setStandardDeviation(0.0); - $fileOperation->setFileClass(EntropyResult::NORMAL); - - // file extension analysis - $fileOperation->setFileExtensionClass(FileExtensionResult::NOT_SUSPICIOUS); - - $this->mapper->insert($fileOperation); - $this->nestingLevel--; + try { + $userRoot = $this->rootFolder->getUserFolder($this->userId); + $node = $userRoot->get($path); + } catch (\OCP\Files\NotFoundException $exception) { + $this->logger->error("File Not Found ".$path, ['app' => Application::APP_ID]); + return; + } + if (!($node instanceof File)) { + + $fileOperation = new FileOperation(); + $fileOperation->setUserId($this->userId); + $fileOperation->setPath(str_replace('files', '', pathinfo($path)['dirname'])); + $fileOperation->setOriginalName(pathinfo($path)['basename']); + $fileOperation->setType('folder'); + $fileOperation->setMimeType('httpd/unix-directory'); + $fileOperation->setSize(0); + $fileOperation->setTimestamp(time()); + $fileOperation->setCorrupted(false); + $fileOperation->setCommand(self::CREATE); + $sequenceId = $this->config->getUserValue($this->userId, Application::APP_ID, 'sequence_id', 0); + $fileOperation->setSequence($sequenceId); + + // entropy analysis + $fileOperation->setEntropy(0.0); + $fileOperation->setStandardDeviation(0.0); + $fileOperation->setFileClass(EntropyResult::NORMAL); + + // file extension analysis + $fileOperation->setFileExtensionClass(FileExtensionResult::NOT_SUSPICIOUS); + + $this->mapper->insert($fileOperation); + $this->nestingLevel--; + } else { + $this->addFileOperation($paths, $node, self::CREATE); + + $this->nestingLevel--; + } return; default: |