<?php declare(strict_types=1); namespace OCA\RePod\Controller; use OCA\RePod\AppInfo\Application; use OCP\AppFramework\Controller; use OCP\AppFramework\Http\Attribute\FrontpageRoute; use OCP\AppFramework\Http\Attribute\NoAdminRequired; use OCP\AppFramework\Http\Attribute\NoCSRFRequired; use OCP\AppFramework\Http\ContentSecurityPolicy; use OCP\AppFramework\Http\TemplateResponse; use OCP\IRequest; use OCP\Util; class PageController extends Controller { public function __construct( IRequest $request ) { parent::__construct(Application::APP_ID, $request); } #[NoAdminRequired] #[NoCSRFRequired] #[FrontpageRoute(verb: 'GET', url: '/')] public function index(): TemplateResponse { Util::addScript(Application::APP_ID, Application::APP_ID.'-main'); Util::addStyle(Application::APP_ID, Application::APP_ID.'-main'); $csp = new ContentSecurityPolicy(); $csp->addAllowedImageDomain('*'); $csp->addAllowedMediaDomain('*'); $response = new TemplateResponse(Application::APP_ID, 'main'); $response->setContentSecurityPolicy($csp); return $response; } #[NoAdminRequired] #[NoCSRFRequired] #[FrontpageRoute(verb: 'GET', url: '/discover')] public function discover(): TemplateResponse { return $this->index(); } #[NoAdminRequired] #[NoCSRFRequired] #[FrontpageRoute(verb: 'GET', url: '/feed/{path}', requirements: ['path' => '.+'])] public function feed(): TemplateResponse { return $this->index(); } }