Merge pull request #26211 from nextcloud/backport/23718/stable21
[stable21] expand 'path is already shared' error message
This commit is contained in:
commit
eaae526ba7
|
@ -564,9 +564,10 @@ class Manager implements IManager {
|
|||
//Shares are not identical
|
||||
}
|
||||
|
||||
// Identical share already existst
|
||||
// Identical share already exists
|
||||
if ($existingShare->getSharedWith() === $share->getSharedWith() && $existingShare->getShareType() === $share->getShareType()) {
|
||||
throw new AlreadySharedException('Path is already shared with this user', $existingShare);
|
||||
$message = $this->l->t('Sharing %s failed, because this item is already shared with user %s', [$share->getNode()->getName(), $share->getSharedWithDisplayName()]);
|
||||
throw new AlreadySharedException($message, $existingShare);
|
||||
}
|
||||
|
||||
// The share is already shared with this user via a group share
|
||||
|
@ -576,7 +577,8 @@ class Manager implements IManager {
|
|||
$user = $this->userManager->get($share->getSharedWith());
|
||||
|
||||
if ($group->inGroup($user) && $existingShare->getShareOwner() !== $share->getShareOwner()) {
|
||||
throw new AlreadySharedException('Path is already shared with this user', $existingShare);
|
||||
$message = $this->l->t('Sharing %s failed, because this item is already shared with user %s', [$share->getNode()->getName(), $share->getSharedWithDisplayName()]);
|
||||
throw new AlreadySharedException($message, $existingShare);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -50,6 +50,7 @@ use OCP\Mail\IMailer;
|
|||
use OCP\Security\Events\ValidatePasswordPolicyEvent;
|
||||
use OCP\Security\IHasher;
|
||||
use OCP\Security\ISecureRandom;
|
||||
use OCP\Share\Exceptions\AlreadySharedException;
|
||||
use OCP\Share\Exceptions\ShareNotFound;
|
||||
use OCP\Share\IProviderFactory;
|
||||
use OCP\Share\IShare;
|
||||
|
@ -1415,10 +1416,11 @@ class ManagerTest extends \Test\TestCase {
|
|||
|
||||
|
||||
public function testUserCreateChecksIdenticalShareExists() {
|
||||
$this->expectException(\Exception::class);
|
||||
$this->expectExceptionMessage('Path is already shared with this user');
|
||||
$this->expectException(AlreadySharedException::class);
|
||||
$this->expectExceptionMessage('Sharing name.txt failed, because this item is already shared with user user');
|
||||
|
||||
$share = $this->manager->newShare();
|
||||
$share->setSharedWithDisplayName('user');
|
||||
$share2 = $this->manager->newShare();
|
||||
|
||||
$sharedWith = $this->createMock(IUser::class);
|
||||
|
@ -1435,13 +1437,16 @@ class ManagerTest extends \Test\TestCase {
|
|||
->with($path)
|
||||
->willReturn([$share2]);
|
||||
|
||||
$path->method('getName')
|
||||
->willReturn('name.txt');
|
||||
|
||||
self::invokePrivate($this->manager, 'userCreateChecks', [$share]);
|
||||
}
|
||||
|
||||
|
||||
public function testUserCreateChecksIdenticalPathSharedViaGroup() {
|
||||
$this->expectException(\Exception::class);
|
||||
$this->expectExceptionMessage('Path is already shared with this user');
|
||||
$this->expectException(AlreadySharedException::class);
|
||||
$this->expectExceptionMessage('Sharing name2.txt failed, because this item is already shared with user userName');
|
||||
|
||||
$share = $this->manager->newShare();
|
||||
|
||||
|
@ -1455,6 +1460,7 @@ class ManagerTest extends \Test\TestCase {
|
|||
$share->setSharedWith('sharedWith')
|
||||
->setNode($path)
|
||||
->setShareOwner('shareOwner')
|
||||
->setSharedWithDisplayName('userName')
|
||||
->setProviderId('foo')
|
||||
->setId('bar');
|
||||
|
||||
|
@ -1477,6 +1483,9 @@ class ManagerTest extends \Test\TestCase {
|
|||
->with($path)
|
||||
->willReturn([$share2]);
|
||||
|
||||
$path->method('getName')
|
||||
->willReturn('name2.txt');
|
||||
|
||||
self::invokePrivate($this->manager, 'userCreateChecks', [$share]);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue