Skip to content

Commit

Permalink
Merge pull request #5706 from nextcloud/backport/5703/stable24
Browse files Browse the repository at this point in the history
[stable24] fix: Avoid conflicts on deck attachments folder name
  • Loading branch information
blizzz authored May 24, 2024
2 parents ff2c11c + 043327d commit 6fb0f62
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 0 deletions.
8 changes: 8 additions & 0 deletions lib/Service/ConfigService.php
Original file line number Diff line number Diff line change
Expand Up @@ -199,4 +199,12 @@ public function getAttachmentFolder(string $userId = null): string {

return $this->config->getUserValue($userId ?? $this->getUserId(), 'deck', 'attachment_folder', '/Deck');
}

public function setAttachmentFolder(?string $userId = null, string $path): void {
if ($userId === null && $this->getUserId() === null) {
throw new NoPermissionException('Must be logged in get the attachment folder');
}

$this->config->setUserValue($userId ?? $this->getUserId(), 'deck', 'attachment_folder', $path);
}
}
11 changes: 11 additions & 0 deletions lib/Service/FilesAppService.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
use OCA\Deck\StatusException;
use OCP\AppFramework\Http\StreamResponse;
use OCP\Constants;
use OCP\Files\Folder;
use OCP\Files\IMimeTypeDetector;
use OCP\Files\IRootFolder;
use OCP\Files\NotFoundException;
Expand Down Expand Up @@ -189,6 +190,16 @@ public function create(Attachment $attachment) {
$folder = $userFolder->newFolder($this->configService->getAttachmentFolder());
}

if ($folder->isShared()) {
$folderName = $userFolder->getNonExistingName($this->configService->getAttachmentFolder());
$folder = $userFolder->newFolder($folderName);
$this->configService->setAttachmentFolder($this->userId, $folderName);
}

if (!$folder instanceof Folder || $folder->isShared()) {
throw new NotFoundException('No target folder found');
}

$fileName = $folder->getNonExistingName($fileName);
$target = $folder->newFile($fileName);
$content = fopen($file['tmp_name'], 'rb');
Expand Down

0 comments on commit 6fb0f62

Please sign in to comment.