diff --git a/README.md b/README.md index adc1045..a19aa02 100755 --- a/README.md +++ b/README.md @@ -14,3 +14,14 @@ http://nextcloud.example.com/index.php/apps/files/?dir=/New%20folder&hide-sideba ## Screenshot ![Tab view in sidebar](.readme/hidesidebars.png) + +## iframe + +This app from version 2.0.0 brings new config parameter `addAllowedFrameAncestorDomain`. For usage in iframe you must update `lib/public/AppFramework/Http/ContentSecurityPolicy.php` manually +or use this new parameter `addAllowedFrameAncestorDomain` in `config.php` + +``` +... +'addAllowedFrameAncestorDomain' => '*.example.com:*' +... +``` diff --git a/appinfo/app.php b/appinfo/app.php deleted file mode 100755 index a23dcb6..0000000 --- a/appinfo/app.php +++ /dev/null @@ -1,5 +0,0 @@ -getEventDispatcher(); -if(\OC_User::isLoggedIn()) { - OCP\Util::addScript('hidesidebars', 'script'); -} diff --git a/appinfo/info.xml b/appinfo/info.xml index 4a59f5d..21c52fa 100755 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -15,17 +15,26 @@ Examples: ``` http://nextcloud.example.com/index.php/apps/files/?hide-sidebars http://nextcloud.example.com/index.php/apps/files/?dir=/New%20folder&hide-sidebars +``` + +This app from version 2.0.0 brings new config parameter `addAllowedFrameAncestorDomain`. +For usage in iframe you must update `lib/public/AppFramework/Http/ContentSecurityPolicy.php` manually +or use this new parameter `addAllowedFrameAncestorDomain` in `config.php` + +``` +... +'addAllowedFrameAncestorDomain' => '*.example.com:*' +... ```]]> - 1.1.0 + 2.0.0 agpl Radoslav Stofko - HideSidebars - tools + customization https://github.com/pointcz/hidesidebars/issues https://github.com/pointcz/hidesidebars https://github.com/pointcz/hidesidebars https://raw.githubusercontent.com/pointcz/hidesidebars/master/.readme/hidesidebars.png - + diff --git a/img/app.svg b/img/app.svg index e0a7d26..1f6d630 100644 --- a/img/app.svg +++ b/img/app.svg @@ -1 +1,6 @@ - \ No newline at end of file + + + + + + diff --git a/js/script.js b/js/script.js index da17199..2100050 100755 --- a/js/script.js +++ b/js/script.js @@ -1,3 +1,5 @@ +console.log('hidesidebar script was loaded'); + window.addEventListener('DOMContentLoaded', function(event) { if (getParameterByName('hide-sidebars') !== null) { hideTopMenu(); diff --git a/lib/AppInfo/Application.php b/lib/AppInfo/Application.php new file mode 100644 index 0000000..ec86170 --- /dev/null +++ b/lib/AppInfo/Application.php @@ -0,0 +1,33 @@ +registerEventListener(LoadAdditionalScriptsEvent::class, HidesidebarScripts::class); + $context->registerEventListener(AddContentSecurityPolicyEvent::class, CSPListener::class); + } + + public function boot(IBootContext $context): void + { + } +} diff --git a/lib/Listener/CSPListener.php b/lib/Listener/CSPListener.php new file mode 100644 index 0000000..5d07240 --- /dev/null +++ b/lib/Listener/CSPListener.php @@ -0,0 +1,33 @@ +config = $config; + } + + public function handle(Event $event): void { + if (!$event instanceof AddContentSecurityPolicyEvent) { + return; + } + + $csp = new EmptyContentSecurityPolicy(); + $csp->addAllowedFrameAncestorDomain($this->config->getSystemValue(Application::CONFIG_FRAME_KEY)); //'*.pointcz.com:*' + $event->addPolicy($csp); + } +} diff --git a/lib/Listener/HidesidebarScripts.php b/lib/Listener/HidesidebarScripts.php new file mode 100644 index 0000000..0e226d5 --- /dev/null +++ b/lib/Listener/HidesidebarScripts.php @@ -0,0 +1,35 @@ +userSession = $userSession; + } + + public function handle(Event $event): void + { + if (!($event instanceof LoadAdditionalScriptsEvent)) { + return; + } + + if ($this->userSession->isLoggedIn()) { + Util::addScript(Application::APP_ID, 'script'); + } + } +}