Skip to content
Snippets Groups Projects
Unverified Commit 14bbec5f authored by Arthur Schiwon's avatar Arthur Schiwon
Browse files

enables the file name check also to match name of mountpoints

parent 83607d22
No related branches found
No related tags found
No related merge requests found
......@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace OCA\WorkflowEngine\Check;
use OCA\WorkflowEngine\Entity\File;
use OCP\Files\Mount\IMountManager;
use OCP\IL10N;
use OCP\IRequest;
use OCP\WorkflowEngine\IFileCheck;
......@@ -33,21 +34,38 @@ class FileName extends AbstractStringCheck implements IFileCheck {
/** @var IRequest */
protected $request;
/** @var IMountManager */
private $mountManager;
/**
* @param IL10N $l
* @param IRequest $request
*/
public function __construct(IL10N $l, IRequest $request) {
public function __construct(IL10N $l, IRequest $request, IMountManager $mountManager) {
parent::__construct($l);
$this->request = $request;
$this->mountManager = $mountManager;
}
/**
* @return string
*/
protected function getActualValue(): string {
return $this->path === null ? '' : basename($this->path);
$fileName = $this->path === null ? '' : basename($this->path);
if ($fileName === '' && !$this->storage->isLocal()) {
// Return the mountpoint name of external storages that are not mounted as user home
$mountPoints = $this->mountManager->findByStorageId($this->storage->getId());
if (empty($mountPoints) || $mountPoints[0]->getMountType() !== 'external') {
return $fileName;
}
$mountPointPath = rtrim($mountPoints[0]->getMountPoint(), '/');
$mountPointPieces = explode('/', $mountPointPath);
$mountPointName = array_pop($mountPointPieces);
if (!empty($mountPointName) && $mountPointName !== 'files' && count($mountPointPieces) !== 2) {
return $mountPointName;
}
}
return $fileName;
}
/**
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment