|
|
|
|
@ -9,7 +9,10 @@ use OCA\CloudFederationAPI\Config;
|
|
|
|
|
use OCA\CloudFederationAPI\ResponseDefinitions;
|
|
|
|
|
use OCP\AppFramework\Controller;
|
|
|
|
|
use OCP\AppFramework\Http;
|
|
|
|
|
use OCP\AppFramework\Http\Attribute\BruteForceProtection;
|
|
|
|
|
use OCP\AppFramework\Http\Attribute\NoCSRFRequired;
|
|
|
|
|
use OCP\AppFramework\Http\Attribute\OpenAPI;
|
|
|
|
|
use OCP\AppFramework\Http\Attribute\PublicPage;
|
|
|
|
|
use OCP\AppFramework\Http\JSONResponse;
|
|
|
|
|
use OCP\Federation\Exceptions\ActionNotSupportedException;
|
|
|
|
|
use OCP\Federation\Exceptions\AuthenticationFailedException;
|
|
|
|
|
@ -55,10 +58,6 @@ class RequestHandlerController extends Controller {
|
|
|
|
|
/**
|
|
|
|
|
* Add share
|
|
|
|
|
*
|
|
|
|
|
* @NoCSRFRequired
|
|
|
|
|
* @PublicPage
|
|
|
|
|
* @BruteForceProtection(action=receiveFederatedShare)
|
|
|
|
|
*
|
|
|
|
|
* @param string $shareWith The user who the share will be shared with
|
|
|
|
|
* @param string $name The resource name (e.g. document.odt)
|
|
|
|
|
* @param string|null $description Share description
|
|
|
|
|
@ -76,6 +75,9 @@ class RequestHandlerController extends Controller {
|
|
|
|
|
* 400: Bad request due to invalid parameters, e.g. when `shareWith` is not found or required properties are missing
|
|
|
|
|
* 501: Share type or the resource type is not supported
|
|
|
|
|
*/
|
|
|
|
|
#[PublicPage]
|
|
|
|
|
#[NoCSRFRequired]
|
|
|
|
|
#[BruteForceProtection(action: 'receiveFederatedShare')]
|
|
|
|
|
public function addShare($shareWith, $name, $description, $providerId, $owner, $ownerDisplayName, $sharedBy, $sharedByDisplayName, $protocol, $shareType, $resourceType) {
|
|
|
|
|
// check if all required parameters are set
|
|
|
|
|
if ($shareWith === null ||
|
|
|
|
|
@ -185,10 +187,6 @@ class RequestHandlerController extends Controller {
|
|
|
|
|
/**
|
|
|
|
|
* Send a notification about an existing share
|
|
|
|
|
*
|
|
|
|
|
* @NoCSRFRequired
|
|
|
|
|
* @PublicPage
|
|
|
|
|
* @BruteForceProtection(action=receiveFederatedShareNotification)
|
|
|
|
|
*
|
|
|
|
|
* @param string $notificationType Notification type, e.g. SHARE_ACCEPTED
|
|
|
|
|
* @param string $resourceType calendar, file, contact,...
|
|
|
|
|
* @param string|null $providerId ID of the share
|
|
|
|
|
@ -200,6 +198,9 @@ class RequestHandlerController extends Controller {
|
|
|
|
|
* 403: Getting resource is not allowed
|
|
|
|
|
* 501: The resource type is not supported
|
|
|
|
|
*/
|
|
|
|
|
#[NoCSRFRequired]
|
|
|
|
|
#[PublicPage]
|
|
|
|
|
#[BruteForceProtection(action: 'receiveFederatedShareNotification')]
|
|
|
|
|
public function receiveNotification($notificationType, $resourceType, $providerId, ?array $notification) {
|
|
|
|
|
// check if all required parameters are set
|
|
|
|
|
if ($notificationType === null ||
|
|
|
|
|
|