* * @author Maxence Lange * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . * */ namespace OC\Core\Controller; use Exception; use OCP\AppFramework\Controller; use OCP\AppFramework\Http; use OCP\AppFramework\Http\Attribute\FrontpageRoute; use OCP\AppFramework\Http\DataResponse; use OCP\Capabilities\ICapability; use OCP\IConfig; use OCP\IRequest; use OCP\Server; use Psr\Container\ContainerExceptionInterface; use Psr\Log\LoggerInterface; /** * Controller about the endpoint /ocm-provider/ * * @since 28.0.0 */ class OCMController extends Controller { public function __construct( IRequest $request, private IConfig $config, private LoggerInterface $logger ) { parent::__construct('core', $request); } /** * generate a OCMProvider with local data and send it as DataResponse. * This replaces the old PHP file ocm-provider/index.php * * @PublicPage * @NoCSRFRequired * @psalm-suppress MoreSpecificReturnType * @psalm-suppress LessSpecificReturnStatement * @return DataResponse|DataResponse * * 200: OCM Provider details returned * 500: OCM not supported */ #[FrontpageRoute(verb: 'GET', url: '/ocm-provider/')] public function discovery(): DataResponse { try { $cap = Server::get( $this->config->getAppValue( 'core', 'ocm_providers', '\OCA\CloudFederationAPI\Capabilities' ) ); if (!($cap instanceof ICapability)) { throw new Exception('loaded class does not implements OCP\Capabilities\ICapability'); } return new DataResponse( $cap->getCapabilities()['ocm'] ?? ['enabled' => false], Http::STATUS_OK, [ 'X-NEXTCLOUD-OCM-PROVIDERS' => true, 'Content-Type' => 'application/json' ] ); } catch (ContainerExceptionInterface|Exception $e) { $this->logger->error('issue during OCM discovery request', ['exception' => $e]); return new DataResponse( ['message' => '/ocm-provider/ not supported'], Http::STATUS_INTERNAL_SERVER_ERROR ); } } } -a-file-from-and-to-a-shared-folder Nextcloud server, a safe home for all your data: https://github.com/nextcloud/serverwww-data
aboutsummaryrefslogtreecommitdiffstats
blob: 11b3599d609d7d4d37fec547adfef0a0b1c3d68f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
/**
 * SPDX-FileCopyrightText: 2020-2024 Nextcloud GmbH and Nextcloud contributors
 * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
 * SPDX-License-Identifier: AGPL-3.0-only
 */
namespace OCA\Files_Sharing\Exceptions;

/**
 * Expected path with a different root
 * Possible Error Codes:
 * 10 - Path not relative to data/ and point to the users file directory
 *
 */
class BrokenPath extends \Exception {
}