Fix default share provider

Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
Joas Schilling 2017-04-10 16:22:12 +02:00 committed by Roeland Jago Douma
parent 2fcf334c6a
commit 5b57bb955b
No known key found for this signature in database
GPG Key ID: F941078878347C0C
2 changed files with 17 additions and 16 deletions

View File

@ -1128,17 +1128,18 @@ class DefaultShareProvider implements IShareProvider {
}
} else if ($type === \OCP\Share::SHARE_TYPE_LINK) {
$link = true;
} else if ($type === self::SHARE_TYPE_USERGROUP) {
if ($currentAccess === true) {
$uid = $row['share_with'];
$users[$uid] = isset($users[$uid]) ? $users[$uid] : [];
$users[$uid][$row['id']] = $row;
}
} else if ($type === self::SHARE_TYPE_USERGROUP && $currentAccess === true) {
$uid = $row['share_with'];
$users[$uid] = isset($users[$uid]) ? $users[$uid] : [];
$users[$uid][$row['id']] = $row;
}
}
$cursor->closeCursor();
$users = array_map([$this, 'filterSharesOfUser'], $users);
if ($currentAccess === true) {
$users = array_filter($users);
}
return ['users' => $users, 'public' => $link];
}

View File

@ -1545,9 +1545,9 @@ class DefaultShareProviderTest extends \Test\TestCase {
$this->assertEquals(1, $stmt);
$id = $qb->getLastInsertId();
$user1 = $this->getMock('\OCP\IUser');
$user1 = $this->createMock(IUser::class);
$user1->method('getUID')->willReturn('user1');
$user2 = $this->getMock('\OCP\IUser');
$user2 = $this->createMock(IUser::class);
$user2->method('getUID')->willReturn('user2');
$this->userManager->method('get')->will($this->returnValueMap([
['user1', $user1],
@ -1556,7 +1556,7 @@ class DefaultShareProviderTest extends \Test\TestCase {
$this->groupManager->method('get')->with('group')->willReturn(null);
$file = $this->getMock('\OCP\Files\File');
$file = $this->createMock(File::class);
$file->method('getId')->willReturn(1);
$this->rootFolder->method('getUserFolder')->with('user1')->will($this->returnSelf());
@ -2503,10 +2503,10 @@ class DefaultShareProviderTest extends \Test\TestCase {
$result = $provider->getAccessList([$folder1, $folder2, $file1], false);
$this->assertCount(4, $result['users']);
$this->assertContains('testShare2', $result['users']);
$this->assertContains('testShare3', $result['users']);
$this->assertContains('testShare4', $result['users']);
$this->assertContains('testShare5', $result['users']);
$this->assertArrayHasKey('testShare2', $result['users']);
$this->assertArrayHasKey('testShare3', $result['users']);
$this->assertArrayHasKey('testShare4', $result['users']);
$this->assertArrayHasKey('testShare5', $result['users']);
$this->assertTrue($result['public']);
$provider->delete($share1);
@ -2590,9 +2590,9 @@ class DefaultShareProviderTest extends \Test\TestCase {
$result = $provider->getAccessList([$folder1, $folder2, $file1], true);
$this->assertCount(3, $result['users']);
$this->assertContains('testShare2', $result['users']);
$this->assertContains('testShare3', $result['users']);
$this->assertContains('testShare5', $result['users']);
$this->assertArrayHasKey('testShare2', $result['users']);
$this->assertArrayHasKey('testShare3', $result['users']);
$this->assertArrayHasKey('testShare5', $result['users']);
$this->assertTrue($result['public']);
$provider->delete($share1);