|
@@ -9,6 +9,7 @@ use App\Entity\Core\File;
|
|
|
use App\Entity\Organization\Organization;
|
|
use App\Entity\Organization\Organization;
|
|
|
use App\Entity\Person\Person;
|
|
use App\Entity\Person\Person;
|
|
|
use App\Enum\Core\FileHostEnum;
|
|
use App\Enum\Core\FileHostEnum;
|
|
|
|
|
+use App\Enum\Core\FileFolderEnum;
|
|
|
use App\Enum\Core\FileSizeEnum;
|
|
use App\Enum\Core\FileSizeEnum;
|
|
|
use App\Enum\Core\FileStatusEnum;
|
|
use App\Enum\Core\FileStatusEnum;
|
|
|
use App\Enum\Core\FileTypeEnum;
|
|
use App\Enum\Core\FileTypeEnum;
|
|
@@ -148,6 +149,7 @@ class LocalStorage implements FileStorageInterface
|
|
|
* @param bool $isTemporary Is it a temporary file that can be deleted after some time
|
|
* @param bool $isTemporary Is it a temporary file that can be deleted after some time
|
|
|
* @param string|null $mimeType Mimetype of the file, if not provided, the method will try to guess it from its file name's extension
|
|
* @param string|null $mimeType Mimetype of the file, if not provided, the method will try to guess it from its file name's extension
|
|
|
* @param bool $flushFile Should the newly created file be flushed after having been persisted?
|
|
* @param bool $flushFile Should the newly created file be flushed after having been persisted?
|
|
|
|
|
+ * @param FileFolderEnum|null $folder The folder where the file is stored, designed for document management
|
|
|
*/
|
|
*/
|
|
|
public function prepareFile(
|
|
public function prepareFile(
|
|
|
Organization|Access|Person $owner,
|
|
Organization|Access|Person $owner,
|
|
@@ -158,6 +160,7 @@ class LocalStorage implements FileStorageInterface
|
|
|
FileVisibilityEnum $visibility = FileVisibilityEnum::NOBODY,
|
|
FileVisibilityEnum $visibility = FileVisibilityEnum::NOBODY,
|
|
|
?string $mimeType = null,
|
|
?string $mimeType = null,
|
|
|
bool $flushFile = true,
|
|
bool $flushFile = true,
|
|
|
|
|
+ ?FileFolderEnum $folder = FileFolderEnum::UNRATED,
|
|
|
): File {
|
|
): File {
|
|
|
[$organization, $person] = $this->getOrganizationAndPersonFromOwner($owner);
|
|
[$organization, $person] = $this->getOrganizationAndPersonFromOwner($owner);
|
|
|
|
|
|
|
@@ -172,6 +175,7 @@ class LocalStorage implements FileStorageInterface
|
|
|
->setMimeType($mimeType ?? $this->fileUtils->guessMimeTypeFromFilename($filename))
|
|
->setMimeType($mimeType ?? $this->fileUtils->guessMimeTypeFromFilename($filename))
|
|
|
->setCreateDate(new \DateTime())
|
|
->setCreateDate(new \DateTime())
|
|
|
->setCreatedBy($createdBy->getId())
|
|
->setCreatedBy($createdBy->getId())
|
|
|
|
|
+ ->setFolder($folder)
|
|
|
->setStatus(FileStatusEnum::PENDING);
|
|
->setStatus(FileStatusEnum::PENDING);
|
|
|
|
|
|
|
|
$this->entityManager->persist($file);
|
|
$this->entityManager->persist($file);
|
|
@@ -260,6 +264,7 @@ class LocalStorage implements FileStorageInterface
|
|
|
FileVisibilityEnum $visibility = FileVisibilityEnum::NOBODY,
|
|
FileVisibilityEnum $visibility = FileVisibilityEnum::NOBODY,
|
|
|
?string $mimeType = null,
|
|
?string $mimeType = null,
|
|
|
?string $config = null,
|
|
?string $config = null,
|
|
|
|
|
+ ?FileFolderEnum $folder = FileFolderEnum::UNRATED,
|
|
|
): File {
|
|
): File {
|
|
|
$file = $this->prepareFile(
|
|
$file = $this->prepareFile(
|
|
|
$owner,
|
|
$owner,
|
|
@@ -269,7 +274,8 @@ class LocalStorage implements FileStorageInterface
|
|
|
$isTemporary,
|
|
$isTemporary,
|
|
|
$visibility,
|
|
$visibility,
|
|
|
$mimeType,
|
|
$mimeType,
|
|
|
- false
|
|
|
|
|
|
|
+ false,
|
|
|
|
|
+ $folder,
|
|
|
);
|
|
);
|
|
|
|
|
|
|
|
if (!empty($config)) {
|
|
if (!empty($config)) {
|