. * */ namespace OCA\Richdocuments\AppInfo; use OC\Security\CSP\ContentSecurityPolicy; use OCA\Richdocuments\PermissionManager; $currentUser = \OC::$server->getUserSession()->getUser(); if($currentUser !== null) { /** @var PermissionManager $permissionManager */ $permissionManager = \OC::$server->query(PermissionManager::class); if(!$permissionManager->isEnabledForUser($currentUser)) { return; } } $eventDispatcher = \OC::$server->getEventDispatcher(); $eventDispatcher->addListener( 'OCA\Files::loadAdditionalScripts', function() { \OCP\Util::addScript('richdocuments', 'viewer/viewer'); \OCP\Util::addStyle('richdocuments', 'viewer/odfviewer'); } ); $eventDispatcher->addListener( 'OCA\Files_Sharing::loadAdditionalScripts', function() { \OCP\Util::addScript('richdocuments', 'viewer/viewer'); \OCP\Util::addStyle('richdocuments', 'viewer/odfviewer'); } ); if (class_exists('\OC\Files\Type\TemplateManager')) { $manager = \OC_Helper::getFileTemplateManager(); $manager->registerTemplate('application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'apps/richdocuments/assets/docxtemplate.docx'); $manager->registerTemplate('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'apps/richdocuments/assets/xlsxtemplate.xlsx'); $manager->registerTemplate('application/vnd.openxmlformats-officedocument.presentationml.presentation', 'apps/richdocuments/assets/pptxtemplate.pptx'); } // Whitelist the wopi URL for iframes, required for Firefox $wopiUrl = str_replace("hostname.host", $_SERVER["HTTP_HOST"], \OC::$server->getConfig()->getAppValue('richdocuments', 'wopi_url')); if ($wopiUrl !== '') { $manager = \OC::$server->getContentSecurityPolicyManager(); $policy = new ContentSecurityPolicy(); $policy->addAllowedFrameDomain($wopiUrl); $manager->addDefaultPolicy($policy); }