Browse Source

Do not allow adding file drop shares to your own cloud

There is no reason for this and you can't create such shares normally
anyway.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
tags/v22.0.0beta1
Roeland Jago Douma 3 years ago
parent
commit
241dfab33f

+ 10
- 0
apps/federatedfilesharing/lib/Controller/MountPublicLinkController.php View File

use OCP\AppFramework\Controller; use OCP\AppFramework\Controller;
use OCP\AppFramework\Http; use OCP\AppFramework\Http;
use OCP\AppFramework\Http\JSONResponse; use OCP\AppFramework\Http\JSONResponse;
use OCP\Constants;
use OCP\Federation\ICloudIdManager; use OCP\Federation\ICloudIdManager;
use OCP\Http\Client\IClientService; use OCP\Http\Client\IClientService;
use OCP\IL10N; use OCP\IL10N;
return $response; return $response;
} }


if (($share->getPermissions() & Constants::PERMISSION_READ) === 0) {
$response = new JSONResponse(
['message' => 'Mounting file drop not supported'],
Http::STATUS_BAD_REQUEST
);
$response->throttle();
return $response;
}

$share->setSharedWith($shareWith); $share->setSharedWith($shareWith);
$share->setShareType(IShare::TYPE_REMOTE); $share->setShareType(IShare::TYPE_REMOTE);



+ 13
- 10
apps/federatedfilesharing/tests/Controller/MountPublicLinkControllerTest.php View File

$token, $token,
$validToken, $validToken,
$createSuccessful, $createSuccessful,
$expectedReturnData
$expectedReturnData,
$permissions
) { ) {
$this->federatedShareProvider->expects($this->any()) $this->federatedShareProvider->expects($this->any())
->method('isOutgoingServer2serverShareEnabled') ->method('isOutgoingServer2serverShareEnabled')
); );


$share = $this->share; $share = $this->share;
$share->setPermissions($permissions);


$this->shareManager->expects($this->any())->method('getShareByToken') $this->shareManager->expects($this->any())->method('getShareByToken')
->with($token) ->with($token)
public function dataTestCreateFederatedShare() { public function dataTestCreateFederatedShare() {
return [ return [
//shareWith, outgoingSharesAllowed, validShareWith, token, validToken, createSuccessful, expectedReturnData //shareWith, outgoingSharesAllowed, validShareWith, token, validToken, createSuccessful, expectedReturnData
['user@server', true, true, 'token', true, true, 'server'],
['user@server', true, false, 'token', true, true, 'invalid federated cloud id'],
['user@server', true, false, 'token', false, true, 'invalid federated cloud id'],
['user@server', true, false, 'token', false, false, 'invalid federated cloud id'],
['user@server', true, false, 'token', true, false, 'invalid federated cloud id'],
['user@server', true, true, 'token', false, true, 'invalid token'],
['user@server', true, true, 'token', false, false, 'invalid token'],
['user@server', true, true, 'token', true, false, 'can not create share'],
['user@server', false, true, 'token', true, true, 'This server doesn\'t support outgoing federated shares'],
['user@server', true, true, 'token', true, true, 'server', 31],
['user@server', true, true, 'token', false, false, 'server', 4],
['user@server', true, false, 'token', true, true, 'invalid federated cloud id', 31],
['user@server', true, false, 'token', false, true, 'invalid federated cloud id', 31],
['user@server', true, false, 'token', false, false, 'invalid federated cloud id', 31],
['user@server', true, false, 'token', true, false, 'invalid federated cloud id', 31],
['user@server', true, true, 'token', false, true, 'invalid token', 31],
['user@server', true, true, 'token', false, false, 'invalid token', 31],
['user@server', true, true, 'token', true, false, 'can not create share', 31],
['user@server', false, true, 'token', true, true, 'This server doesn\'t support outgoing federated shares', 31],
]; ];
} }
} }

Loading…
Cancel
Save