mirror of
https://github.com/nextcloud/server.git
synced 2026-06-09 08:44:07 -04:00
Merge pull request #48597 from nextcloud/fix/fix-email-share-transfer-accross-storages
Fix email share transfer accross storages
This commit is contained in:
commit
05886d281d
3 changed files with 8 additions and 1 deletions
|
|
@ -420,6 +420,7 @@ class OwnershipTransferService {
|
|||
|
||||
foreach ($shares as ['share' => $share, 'suffix' => $suffix]) {
|
||||
try {
|
||||
$output->writeln('Transfering share ' . $share->getId() . ' of type ' . $share->getShareType(), OutputInterface::VERBOSITY_VERBOSE);
|
||||
if ($share->getShareType() === IShare::TYPE_USER &&
|
||||
$share->getSharedWith() === $destinationUid) {
|
||||
// Unmount the shares before deleting, so we don't try to get the storage later on.
|
||||
|
|
@ -457,6 +458,7 @@ class OwnershipTransferService {
|
|||
// Try to get the new ID from the target path and suffix of the share
|
||||
$node = $rootFolder->get(Filesystem::normalizePath($targetLocation . '/' . $suffix));
|
||||
$newNodeId = $node->getId();
|
||||
$output->writeln('Had to change node id to ' . $newNodeId, OutputInterface::VERBOSITY_VERY_VERBOSE);
|
||||
}
|
||||
$share->setNodeId($newNodeId);
|
||||
|
||||
|
|
|
|||
|
|
@ -739,11 +739,14 @@ class ShareByMailProvider extends DefaultShareProvider implements IShareProvider
|
|||
$shareAttributes = $this->formatShareAttributes($share->getAttributes());
|
||||
|
||||
/*
|
||||
* We allow updating the permissions and password of mail shares
|
||||
* We allow updating mail shares
|
||||
*/
|
||||
$qb = $this->dbConnection->getQueryBuilder();
|
||||
$qb->update('share')
|
||||
->where($qb->expr()->eq('id', $qb->createNamedParameter($share->getId())))
|
||||
->set('item_source', $qb->createNamedParameter($share->getNodeId()))
|
||||
->set('file_source', $qb->createNamedParameter($share->getNodeId()))
|
||||
->set('share_with', $qb->createNamedParameter($share->getSharedWith()))
|
||||
->set('permissions', $qb->createNamedParameter($share->getPermissions()))
|
||||
->set('uid_owner', $qb->createNamedParameter($share->getShareOwner()))
|
||||
->set('uid_initiator', $qb->createNamedParameter($share->getSharedBy()))
|
||||
|
|
|
|||
|
|
@ -755,6 +755,8 @@ class ShareByMailProviderTest extends TestCase {
|
|||
$this->share->expects($this->once())->method('getSharedBy')->willReturn($sharedBy);
|
||||
$this->share->expects($this->any())->method('getNote')->willReturn($note);
|
||||
$this->share->expects($this->atLeastOnce())->method('getId')->willReturn($id);
|
||||
$this->share->expects($this->atLeastOnce())->method('getNodeId')->willReturn($itemSource);
|
||||
$this->share->expects($this->once())->method('getSharedWith')->willReturn($shareWith);
|
||||
|
||||
$this->assertSame($this->share,
|
||||
$instance->update($this->share)
|
||||
|
|
|
|||
Loading…
Reference in a new issue