IAddressBook: add isShared and isSystemAddressBook
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
This commit is contained in:
parent
1cf9f42817
commit
b0c5457c42
|
@ -281,12 +281,7 @@ class AddressBookImpl implements IAddressBook {
|
|||
}
|
||||
}
|
||||
|
||||
if (
|
||||
$this->addressBookInfo['principaluri'] === 'principals/system/system' && (
|
||||
$this->addressBookInfo['uri'] === 'system' ||
|
||||
$this->addressBookInfo['{DAV:}displayname'] === $this->urlGenerator->getBaseUrl()
|
||||
)
|
||||
) {
|
||||
if ($this->isSystemAddressBook()) {
|
||||
$result['isLocalSystemBook'] = true;
|
||||
}
|
||||
return $result;
|
||||
|
@ -309,4 +304,26 @@ class AddressBookImpl implements IAddressBook {
|
|||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function isShared(): bool {
|
||||
if (!isset($this->addressBookInfo['{http://owncloud.org/ns}owner-principal'])) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return $this->addressBookInfo['principaluri']
|
||||
!== $this->addressBookInfo['{http://owncloud.org/ns}owner-principal'];
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
public function isSystemAddressBook(): bool {
|
||||
return $this->addressBookInfo['principaluri'] === 'principals/system/system' && (
|
||||
$this->addressBookInfo['uri'] === 'system' ||
|
||||
$this->addressBookInfo['{DAV:}displayname'] === $this->urlGenerator->getBaseUrl()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -447,4 +447,63 @@ class AddressBookImplTest extends TestCase {
|
|||
'isLocalSystemBook' => true,
|
||||
], $array);
|
||||
}
|
||||
|
||||
public function testIsSystemAddressBook(): void {
|
||||
$addressBookInfo = [
|
||||
'{http://owncloud.org/ns}owner-principal' => 'principals/system/system',
|
||||
'principaluri' => 'principals/system/system',
|
||||
'{DAV:}displayname' => 'display name',
|
||||
'id' => 666,
|
||||
'uri' => 'system',
|
||||
];
|
||||
|
||||
$addressBookImpl = new AddressBookImpl(
|
||||
$this->addressBook,
|
||||
$addressBookInfo,
|
||||
$this->backend,
|
||||
$this->urlGenerator
|
||||
);
|
||||
|
||||
$this->assertTrue($addressBookImpl->isSystemAddressBook());
|
||||
}
|
||||
|
||||
public function testIsShared(): void {
|
||||
$addressBookInfo = [
|
||||
'{http://owncloud.org/ns}owner-principal' => 'user1',
|
||||
'{DAV:}displayname' => 'Test address book',
|
||||
'principaluri' => 'user2',
|
||||
'id' => 666,
|
||||
'uri' => 'default',
|
||||
];
|
||||
|
||||
$addressBookImpl = new AddressBookImpl(
|
||||
$this->addressBook,
|
||||
$addressBookInfo,
|
||||
$this->backend,
|
||||
$this->urlGenerator
|
||||
);
|
||||
|
||||
$this->assertFalse($addressBookImpl->isSystemAddressBook());
|
||||
$this->assertTrue($addressBookImpl->isShared());
|
||||
}
|
||||
|
||||
public function testIsNotShared(): void {
|
||||
$addressBookInfo = [
|
||||
'{http://owncloud.org/ns}owner-principal' => 'user1',
|
||||
'{DAV:}displayname' => 'Test address book',
|
||||
'principaluri' => 'user1',
|
||||
'id' => 666,
|
||||
'uri' => 'default',
|
||||
];
|
||||
|
||||
$addressBookImpl = new AddressBookImpl(
|
||||
$this->addressBook,
|
||||
$addressBookInfo,
|
||||
$this->backend,
|
||||
$this->urlGenerator
|
||||
);
|
||||
|
||||
$this->assertFalse($addressBookImpl->isSystemAddressBook());
|
||||
$this->assertFalse($addressBookImpl->isShared());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -107,5 +107,20 @@ namespace OCP {
|
|||
* @since 5.0.0
|
||||
*/
|
||||
public function delete($id);
|
||||
|
||||
/**
|
||||
* Returns true if this address-book is not owned by the current user,
|
||||
* but shared with them.
|
||||
*
|
||||
* @return bool
|
||||
* @since 20.0.0
|
||||
*/
|
||||
public function isShared(): bool;
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
* @since 20.0.0
|
||||
*/
|
||||
public function isSystemAddressBook(): bool;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue