|
@@ -90,6 +90,46 @@ class SystemAddressBookTest extends TestCase {
|
|
);
|
|
);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ public function testGetChildrenAsGuest(): void {
|
|
|
|
+ $this->config->expects(self::exactly(3))
|
|
|
|
+ ->method('getAppValue')
|
|
|
|
+ ->willReturnMap([
|
|
|
|
+ ['core', 'shareapi_allow_share_dialog_user_enumeration', 'yes', 'yes'],
|
|
|
|
+ ['core', 'shareapi_restrict_user_enumeration_to_group', 'no', 'no'],
|
|
|
|
+ ['core', 'shareapi_restrict_user_enumeration_to_phone', 'no', 'no'],
|
|
|
|
+ ]);
|
|
|
|
+ $user = $this->createMock(IUser::class);
|
|
|
|
+ $user->method('getUID')->willReturn('user');
|
|
|
|
+ $user->method('getBackendClassName')->willReturn('Guests');
|
|
|
|
+ $this->userSession->expects(self::once())
|
|
|
|
+ ->method('getUser')
|
|
|
|
+ ->willReturn($user);
|
|
|
|
+ $vcfWithScopes = <<<VCF
|
|
|
|
+BEGIN:VCARD
|
|
|
|
+VERSION:3.0
|
|
|
|
+PRODID:-//Sabre//Sabre VObject 4.4.2//EN
|
|
|
|
+UID:admin
|
|
|
|
+FN;X-NC-SCOPE=v2-federated:admin
|
|
|
|
+N;X-NC-SCOPE=v2-federated:admin;;;;
|
|
|
|
+ADR;TYPE=OTHER;X-NC-SCOPE=v2-local:Testing test test test;;;;;;
|
|
|
|
+EMAIL;TYPE=OTHER;X-NC-SCOPE=v2-federated:miau_lalala@gmx.net
|
|
|
|
+TEL;TYPE=OTHER;X-NC-SCOPE=v2-local:+435454454544
|
|
|
|
+CLOUD:admin@http://localhost
|
|
|
|
+END:VCARD
|
|
|
|
+VCF;
|
|
|
|
+ $originalCard = [
|
|
|
|
+ 'carddata' => $vcfWithScopes,
|
|
|
|
+ ];
|
|
|
|
+ $this->cardDavBackend->expects(self::once())
|
|
|
|
+ ->method('getCard')
|
|
|
|
+ ->with(123, 'Guests:user.vcf')
|
|
|
|
+ ->willReturn($originalCard);
|
|
|
|
+
|
|
|
|
+ $children = $this->addressBook->getChildren();
|
|
|
|
+
|
|
|
|
+ self::assertCount(1, $children);
|
|
|
|
+ }
|
|
|
|
+
|
|
public function testGetFilteredChildForFederation(): void {
|
|
public function testGetFilteredChildForFederation(): void {
|
|
$this->config->expects(self::exactly(3))
|
|
$this->config->expects(self::exactly(3))
|
|
->method('getAppValue')
|
|
->method('getAppValue')
|
|
@@ -172,6 +212,24 @@ VCF;
|
|
$this->addressBook->getChild("LDAP:user.vcf");
|
|
$this->addressBook->getChild("LDAP:user.vcf");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ public function testGetChildAsGuest(): void {
|
|
|
|
+ $this->config->expects(self::exactly(3))
|
|
|
|
+ ->method('getAppValue')
|
|
|
|
+ ->willReturnMap([
|
|
|
|
+ ['core', 'shareapi_allow_share_dialog_user_enumeration', 'yes', 'yes'],
|
|
|
|
+ ['core', 'shareapi_restrict_user_enumeration_to_group', 'no', 'no'],
|
|
|
|
+ ['core', 'shareapi_restrict_user_enumeration_to_phone', 'no', 'no'],
|
|
|
|
+ ]);
|
|
|
|
+ $user = $this->createMock(IUser::class);
|
|
|
|
+ $user->method('getBackendClassName')->willReturn('Guests');
|
|
|
|
+ $this->userSession->expects(self::once())
|
|
|
|
+ ->method('getUser')
|
|
|
|
+ ->willReturn($user);
|
|
|
|
+ $this->expectException(Forbidden::class);
|
|
|
|
+
|
|
|
|
+ $this->addressBook->getChild("LDAP:user.vcf");
|
|
|
|
+ }
|
|
|
|
+
|
|
public function testGetChildWithGroupEnumerationRestriction(): void {
|
|
public function testGetChildWithGroupEnumerationRestriction(): void {
|
|
$this->config->expects(self::exactly(3))
|
|
$this->config->expects(self::exactly(3))
|
|
->method('getAppValue')
|
|
->method('getAppValue')
|
|
@@ -322,6 +380,26 @@ VCF;
|
|
self::assertCount(2, $cards);
|
|
self::assertCount(2, $cards);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ public function testGetMultipleChildrenAsGuest(): void {
|
|
|
|
+ $this->config
|
|
|
|
+ ->method('getAppValue')
|
|
|
|
+ ->willReturnMap([
|
|
|
|
+ ['core', 'shareapi_allow_share_dialog_user_enumeration', 'yes', 'yes'],
|
|
|
|
+ ['core', 'shareapi_restrict_user_enumeration_to_group', 'no', 'no'],
|
|
|
|
+ ['core', 'shareapi_restrict_user_enumeration_to_phone', 'no', 'no'],
|
|
|
|
+ ]);
|
|
|
|
+ $user = $this->createMock(IUser::class);
|
|
|
|
+ $user->method('getUID')->willReturn('user');
|
|
|
|
+ $user->method('getBackendClassName')->willReturn('Guests');
|
|
|
|
+ $this->userSession->expects(self::once())
|
|
|
|
+ ->method('getUser')
|
|
|
|
+ ->willReturn($user);
|
|
|
|
+
|
|
|
|
+ $cards = $this->addressBook->getMultipleChildren(['Database:user1.vcf', 'LDAP:user2.vcf']);
|
|
|
|
+
|
|
|
|
+ self::assertEmpty($cards);
|
|
|
|
+ }
|
|
|
|
+
|
|
public function testGetMultipleChildren(): void {
|
|
public function testGetMultipleChildren(): void {
|
|
$this->config
|
|
$this->config
|
|
->method('getAppValue')
|
|
->method('getAppValue')
|