12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- <?php
- /**
- * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
- * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
- * SPDX-License-Identifier: AGPL-3.0-only
- */
- namespace OCA\DAV\DAV\Sharing;
- use Sabre\DAV\INode;
- /**
- * This interface represents a dav resource that can be shared with other users.
- *
- */
- interface IShareable extends INode {
- /**
- * Updates the list of shares.
- *
- * The first array is a list of people that are to be added to the
- * resource.
- *
- * Every element in the add array has the following properties:
- * * href - A url. Usually a mailto: address
- * * commonName - Usually a first and last name, or false
- * * readOnly - A boolean value
- *
- * Every element in the remove array is just the address string.
- *
- * @param list<array{href: string, commonName: string, readOnly: bool}> $add
- * @param list<string> $remove
- */
- public function updateShares(array $add, array $remove): void;
- /**
- * Returns the list of people whom this resource is shared with.
- *
- * Every element in this array should have the following properties:
- * * href - Often a mailto: address
- * * commonName - Optional, for example a first + last name
- * * status - See the Sabre\CalDAV\SharingPlugin::STATUS_ constants.
- * * readOnly - boolean
- *
- * @return list<array{href: string, commonName: string, status: int, readOnly: bool, '{http://owncloud.org/ns}principal': string, '{http://owncloud.org/ns}group-share': bool}>
- */
- public function getShares(): array;
- public function getResourceId(): int;
- /**
- * @return ?string
- */
- public function getOwner();
- }
|