mirror of
https://github.com/nextcloud/server.git
synced 2026-06-10 17:23:59 -04:00
Merge pull request #33581 from nextcloud/share-lazy-user
use LazyUser in DefaultShareProvider
This commit is contained in:
commit
2bc949d22d
2 changed files with 25 additions and 16 deletions
|
|
@ -11,6 +11,7 @@ use OC\Files\Cache\Cache;
|
|||
use OC\Share20\Exception\BackendError;
|
||||
use OC\Share20\Exception\InvalidShare;
|
||||
use OC\Share20\Exception\ProviderException;
|
||||
use OC\User\LazyUser;
|
||||
use OCP\AppFramework\Utility\ITimeFactory;
|
||||
use OCP\DB\QueryBuilder\IQueryBuilder;
|
||||
use OCP\Defaults;
|
||||
|
|
@ -909,8 +910,8 @@ class DefaultShareProvider implements IShareProvider {
|
|||
}
|
||||
$cursor->closeCursor();
|
||||
} elseif ($shareType === IShare::TYPE_GROUP) {
|
||||
$user = $this->userManager->get($userId);
|
||||
$allGroups = ($user instanceof IUser) ? $this->groupManager->getUserGroupIds($user) : [];
|
||||
$user = new LazyUser($userId, $this->userManager);
|
||||
$allGroups = $this->groupManager->getUserGroupIds($user);
|
||||
|
||||
/** @var Share[] $shares2 */
|
||||
$shares2 = [];
|
||||
|
|
@ -1045,9 +1046,9 @@ class DefaultShareProvider implements IShareProvider {
|
|||
|
||||
if ($share->getShareType() === IShare::TYPE_USER) {
|
||||
$share->setSharedWith($data['share_with']);
|
||||
$user = $this->userManager->get($data['share_with']);
|
||||
if ($user !== null) {
|
||||
$share->setSharedWithDisplayName($user->getDisplayName());
|
||||
$displayName = $this->userManager->getDisplayName($data['share_with']);
|
||||
if ($displayName !== null) {
|
||||
$share->setSharedWithDisplayName($displayName);
|
||||
}
|
||||
} elseif ($share->getShareType() === IShare::TYPE_GROUP) {
|
||||
$share->setSharedWith($data['share_with']);
|
||||
|
|
|
|||
|
|
@ -38,31 +38,31 @@ class DefaultShareProviderTest extends \Test\TestCase {
|
|||
/** @var IDBConnection */
|
||||
protected $dbConn;
|
||||
|
||||
/** @var IUserManager | \PHPUnit\Framework\MockObject\MockObject */
|
||||
/** @var IUserManager | MockObject */
|
||||
protected $userManager;
|
||||
|
||||
/** @var IGroupManager | \PHPUnit\Framework\MockObject\MockObject */
|
||||
/** @var IGroupManager | MockObject */
|
||||
protected $groupManager;
|
||||
|
||||
/** @var IRootFolder | \PHPUnit\Framework\MockObject\MockObject */
|
||||
/** @var IRootFolder | MockObject */
|
||||
protected $rootFolder;
|
||||
|
||||
/** @var DefaultShareProvider */
|
||||
protected $provider;
|
||||
|
||||
/** @var \PHPUnit\Framework\MockObject\MockObject|IMailer */
|
||||
/** @var MockObject|IMailer */
|
||||
protected $mailer;
|
||||
|
||||
/** @var IFactory|MockObject */
|
||||
protected $l10nFactory;
|
||||
|
||||
/** @var \PHPUnit\Framework\MockObject\MockObject|IL10N */
|
||||
/** @var MockObject|IL10N */
|
||||
protected $l10n;
|
||||
|
||||
/** @var \PHPUnit\Framework\MockObject\MockObject|Defaults */
|
||||
/** @var MockObject|Defaults */
|
||||
protected $defaults;
|
||||
|
||||
/** @var \PHPUnit\Framework\MockObject\MockObject|IURLGenerator */
|
||||
/** @var MockObject|IURLGenerator */
|
||||
protected $urlGenerator;
|
||||
|
||||
/** @var ITimeFactory|MockObject */
|
||||
|
|
@ -1035,7 +1035,9 @@ class DefaultShareProviderTest extends \Test\TestCase {
|
|||
['shareOwner', $owner],
|
||||
['sharedBy', $initiator],
|
||||
]);
|
||||
$this->groupManager->method('getUserGroupIds')->with($user)->willReturn($groups);
|
||||
$this->groupManager
|
||||
->method('getUserGroupIds')
|
||||
->willReturnCallback(fn (IUser $user) => ($user->getUID() === 'sharedWith' ? $groups : []));
|
||||
|
||||
$file = $this->createMock(File::class);
|
||||
$this->rootFolder->method('getUserFolder')->with('shareOwner')->willReturnSelf();
|
||||
|
|
@ -1123,7 +1125,9 @@ class DefaultShareProviderTest extends \Test\TestCase {
|
|||
['shareOwner', $owner],
|
||||
['sharedBy', $initiator],
|
||||
]);
|
||||
$this->groupManager->method('getUserGroupIds')->with($user)->willReturn($groups);
|
||||
$this->groupManager
|
||||
->method('getUserGroupIds')
|
||||
->willReturnCallback(fn (IUser $user) => ($user->getUID() === 'user' ? $groups : []));
|
||||
|
||||
$file = $this->createMock(File::class);
|
||||
$this->rootFolder->method('getUserFolder')->with('shareOwner')->willReturnSelf();
|
||||
|
|
@ -1206,7 +1210,9 @@ class DefaultShareProviderTest extends \Test\TestCase {
|
|||
['user1', $user1],
|
||||
]);
|
||||
|
||||
$this->groupManager->method('getUserGroupIds')->with($user0)->willReturn(['group0']);
|
||||
$this->groupManager
|
||||
->method('getUserGroupIds')
|
||||
->willReturnCallback(fn (IUser $user) => ($user->getUID() === 'user0' ? ['group0'] : []));
|
||||
|
||||
$node = $this->createMock(Folder::class);
|
||||
$node->method('getId')->willReturn($fileId2);
|
||||
|
|
@ -1283,7 +1289,9 @@ class DefaultShareProviderTest extends \Test\TestCase {
|
|||
['shareOwner', $owner],
|
||||
['sharedBy', $initiator],
|
||||
]);
|
||||
$this->groupManager->method('getUserGroupIds')->with($user)->willReturn($groups);
|
||||
$this->groupManager
|
||||
->method('getUserGroupIds')
|
||||
->willReturnCallback(fn (IUser $user) => ($user->getUID() === 'sharedWith' ? $groups : []));
|
||||
|
||||
$share = $this->provider->getSharedWith('sharedWith', $shareType, null, 1, 0);
|
||||
$this->assertCount(0, $share);
|
||||
|
|
|
|||
Loading…
Reference in a new issue