diff options
author | Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com> | 2024-11-25 11:17:29 +0100 |
---|---|---|
committer | Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com> | 2024-11-29 11:14:37 +0100 |
commit | 5581f0c7bf698b26db0b68b0e420a0f9da490c8b (patch) | |
tree | e897d63f27cfb6a136b2406e9bb0a9a676f4e4ac | |
parent | a4c3e0c4a07f1b5204b9bff100c1e10918a1214e (diff) | |
download | nextcloud-server-5581f0c7bf698b26db0b68b0e420a0f9da490c8b.tar.gz nextcloud-server-5581f0c7bf698b26db0b68b0e420a0f9da490c8b.zip |
chore: remove legacy action to test remote endpoint
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
4 files changed, 1 insertions, 167 deletions
diff --git a/apps/files_sharing/appinfo/routes.php b/apps/files_sharing/appinfo/routes.php index 91f8271c143..f86aeedd2c2 100644 --- a/apps/files_sharing/appinfo/routes.php +++ b/apps/files_sharing/appinfo/routes.php @@ -40,12 +40,6 @@ return [ 'verb' => 'GET', 'root' => '', ], - - [ - 'name' => 'externalShares#testRemote', - 'url' => '/testremote', - 'verb' => 'GET' - ], [ 'name' => 'PublicPreview#getPreview', 'url' => '/publicpreview/{token}', diff --git a/apps/files_sharing/lib/Controller/ExternalSharesController.php b/apps/files_sharing/lib/Controller/ExternalSharesController.php index e7189dabfbd..9d15b03c6cd 100644 --- a/apps/files_sharing/lib/Controller/ExternalSharesController.php +++ b/apps/files_sharing/lib/Controller/ExternalSharesController.php @@ -8,11 +8,7 @@ namespace OCA\Files_Sharing\Controller; use OCP\AppFramework\Controller; use OCP\AppFramework\Http\Attribute\NoAdminRequired; -use OCP\AppFramework\Http\Attribute\PublicPage; -use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\Http\JSONResponse; -use OCP\Http\Client\IClientService; -use OCP\IConfig; use OCP\IRequest; /** @@ -25,8 +21,6 @@ class ExternalSharesController extends Controller { string $appName, IRequest $request, private \OCA\Files_Sharing\External\Manager $externalManager, - private IClientService $clientService, - private IConfig $config, ) { parent::__construct($appName, $request); } @@ -64,64 +58,4 @@ class ExternalSharesController extends Controller { $this->externalManager->declineShare($id); return new JSONResponse(); } - - /** - * Test whether the specified remote is accessible - * - * @param string $remote - * @param bool $checkVersion - * @return bool - */ - protected function testUrl($remote, $checkVersion = false) { - try { - $client = $this->clientService->newClient(); - $response = json_decode($client->get( - $remote, - [ - 'timeout' => 3, - 'connect_timeout' => 3, - 'verify' => !$this->config->getSystemValueBool('sharing.federation.allowSelfSignedCertificates', false), - ] - )->getBody()); - - if ($checkVersion) { - return !empty($response->version) && version_compare($response->version, '7.0.0', '>='); - } else { - return is_object($response); - } - } catch (\Exception $e) { - return false; - } - } - - /** - * @NoOutgoingFederatedSharingRequired - * @NoIncomingFederatedSharingRequired - * - * @param string $remote - * @return DataResponse - * @AnonRateThrottle(limit=5, period=120) - */ - #[PublicPage] - public function testRemote($remote) { - if (preg_match('%[!#$&\'()*+,;=?@[\]]%', $remote)) { - return new DataResponse(false); - } - - if ( - $this->testUrl('https://' . $remote . '/ocm-provider/') || - $this->testUrl('https://' . $remote . '/ocm-provider/index.php') || - $this->testUrl('https://' . $remote . '/status.php', true) - ) { - return new DataResponse('https'); - } elseif ( - $this->testUrl('http://' . $remote . '/ocm-provider/') || - $this->testUrl('http://' . $remote . '/ocm-provider/index.php') || - $this->testUrl('http://' . $remote . '/status.php', true) - ) { - return new DataResponse('http'); - } else { - return new DataResponse(false); - } - } } diff --git a/apps/files_sharing/openapi.json b/apps/files_sharing/openapi.json index 76063ad3f93..50b67c298e4 100644 --- a/apps/files_sharing/openapi.json +++ b/apps/files_sharing/openapi.json @@ -3805,10 +3805,5 @@ } } }, - "tags": [ - { - "name": "external_shares", - "description": "Class ExternalSharesController" - } - ] + "tags": [] } diff --git a/apps/files_sharing/tests/Controller/ExternalShareControllerTest.php b/apps/files_sharing/tests/Controller/ExternalShareControllerTest.php index eac37a3f3a5..5e8e32c06d8 100644 --- a/apps/files_sharing/tests/Controller/ExternalShareControllerTest.php +++ b/apps/files_sharing/tests/Controller/ExternalShareControllerTest.php @@ -8,11 +8,8 @@ namespace OCA\Files_Sharing\Tests\Controllers; use OCA\Files_Sharing\Controller\ExternalSharesController; use OCA\Files_Sharing\External\Manager; -use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\Http\JSONResponse; -use OCP\Http\Client\IClient; use OCP\Http\Client\IClientService; -use OCP\Http\Client\IResponse; use OCP\IConfig; use OCP\IRequest; use PHPUnit\Framework\MockObject\MockObject; @@ -79,90 +76,4 @@ class ExternalShareControllerTest extends \Test\TestCase { $this->assertEquals(new JSONResponse(), $this->getExternalShareController()->destroy(4)); } - - public function testRemoteWithValidHttps(): void { - $client = $this->createMock(IClient::class); - $response = $this->createMock(IResponse::class); - $response - ->expects($this->exactly(2)) - ->method('getBody') - ->willReturnOnConsecutiveCalls( - 'Certainly not a JSON string', - '{"installed":true,"maintenance":false,"version":"8.1.0.8","versionstring":"8.1.0","edition":""}' - ); - $client - ->expects($this->any()) - ->method('get') - ->willReturn($response); - - $this->clientService - ->expects($this->exactly(2)) - ->method('newClient') - ->willReturn($client); - - $this->assertEquals(new DataResponse('https'), $this->getExternalShareController()->testRemote('nextcloud.com')); - } - - public function testRemoteWithWorkingHttp(): void { - $client = $this->createMock(IClient::class); - $response = $this->createMock(IResponse::class); - $client - ->method('get') - ->willReturn($response); - $response - ->expects($this->exactly(5)) - ->method('getBody') - ->willReturnOnConsecutiveCalls( - 'Certainly not a JSON string', - 'Certainly not a JSON string', - 'Certainly not a JSON string', - 'Certainly not a JSON string', - '{"installed":true,"maintenance":false,"version":"8.1.0.8","versionstring":"8.1.0","edition":""}' - ); - $this->clientService - ->expects($this->exactly(5)) - ->method('newClient') - ->willReturn($client); - - $this->assertEquals(new DataResponse('http'), $this->getExternalShareController()->testRemote('nextcloud.com')); - } - - public function testRemoteWithInvalidRemote(): void { - $client = $this->createMock(IClient::class); - $response = $this->createMock(IResponse::class); - $client - ->expects($this->exactly(6)) - ->method('get') - ->willReturn($response); - $response - ->expects($this->exactly(6)) - ->method('getBody') - ->willReturn('Certainly not a JSON string'); - $this->clientService - ->expects($this->exactly(6)) - ->method('newClient') - ->willReturn($client); - - $this->assertEquals(new DataResponse(false), $this->getExternalShareController()->testRemote('nextcloud.com')); - } - - public function dataRemoteWithInvalidRemoteURLs(): array { - return [ - ['nextcloud.com?query'], - ['nextcloud.com/#anchor'], - ['nextcloud.com/;tomcat'], - ]; - } - - /** - * @dataProvider dataRemoteWithInvalidRemoteURLs - * @param string $remote - */ - public function testRemoteWithInvalidRemoteURLs(string $remote): void { - $this->clientService - ->expects($this->never()) - ->method('newClient'); - - $this->assertEquals(new DataResponse(false), $this->getExternalShareController()->testRemote($remote)); - } } |