From f3f0bd1bb4886d7608164bfc8e295bec6c29e3cc Mon Sep 17 00:00:00 2001 From: unteem Date: Fri, 9 Jun 2023 13:21:51 +0200 Subject: [PATCH] feat: conditional css for admin sso, doc in iframe, refactor --- css/sso.css | 18 +++++++++ css/style.css | 30 +++++++++++++++ lib/AppInfo/Application.php | 7 +++- lib/BeforeTemplateRenderedListener.php | 12 ++++++ lib/SitesManager.php | 51 +++++++++----------------- 5 files changed, 84 insertions(+), 34 deletions(-) create mode 100644 css/sso.css diff --git a/css/sso.css b/css/sso.css new file mode 100644 index 0000000..4152849 --- /dev/null +++ b/css/sso.css @@ -0,0 +1,18 @@ +.menu-entry#core_users { + display:none; +} + +/* Manage quota */ +#body-settings .app-navigation-new {display:none !important;} +#body-settings #usergrouplist {display:none !important;} +#body-settings [for="sendWelcomeMail"] {display:none !important;} +#body-settings [for="showLanguages"] {display:none !important;} +#addgroup {display:none !important;} +.app-navigation-entry__utils .icon-delete {display:none !important;} + +#body-settings .groups {display:none !important;} +#body-settings .subadmins {display:none !important;} +#body-settings .mailAddress {display:none !important;} +#body-settings .password {display:none !important;} +#body-settings .userPopoverMenuWrapper {display:none !important;} + \ No newline at end of file diff --git a/css/style.css b/css/style.css index 9824466..af6ef11 100644 --- a/css/style.css +++ b/css/style.css @@ -1,3 +1,33 @@ +[href="https://nextcloud.com/signup/"] { + display: none; +} + +footer .entity-name:after { + content:" hébergé avec soin par IndieHosters"; +} + +[href="/settings/apps/dashboard"] { + display: none !important; +} + +.newFileMenu .menuitem[data-action="template-init"], +.newFileMenu .menuitem[data-filetype="docxf"] +{ + display: none !important; +} + +#open-reasons-use-nextcloud-pdf { + display: none; +} + +.section.development-notice .social-button { + display: none; +} + +.menu-entry#help { + display:none; +} + .site-name, .site-url { width: 35%; } diff --git a/lib/AppInfo/Application.php b/lib/AppInfo/Application.php index cd63216..7d7ff33 100644 --- a/lib/AppInfo/Application.php +++ b/lib/AppInfo/Application.php @@ -21,13 +21,17 @@ namespace OCA\Liiibre\AppInfo; +use OCA\Liiibre\BeforeTemplateRenderedListener; use OCA\Liiibre\Capabilities; use OCA\Liiibre\SitesManager; +use OCA\Files\Event\LoadAdditionalScriptsEvent; use OCP\AppFramework\App; use OCP\AppFramework\Bootstrap\IBootContext; use OCP\AppFramework\Bootstrap\IBootstrap; use OCP\AppFramework\Bootstrap\IRegistrationContext; +use OCP\AppFramework\Http\Events\BeforeTemplateRenderedEvent; use OCP\INavigationManager; +use OCP\Util; class Application extends App implements IBootstrap { @@ -45,7 +49,8 @@ class Application extends App implements IBootstrap { } public function boot(IBootContext $context): void { - $context->injectFn([$this, 'registerSites']); + $context->injectFn([$this, 'registerSites']); + Util::addStyle(self::APP_ID, 'style'); } public function registerSites( diff --git a/lib/BeforeTemplateRenderedListener.php b/lib/BeforeTemplateRenderedListener.php index 424dca3..c3eed16 100644 --- a/lib/BeforeTemplateRenderedListener.php +++ b/lib/BeforeTemplateRenderedListener.php @@ -23,20 +23,26 @@ declare(strict_types=1); namespace OCA\Liiibre; +use OCA\Liiibre\AppInfo\Application; use OCP\AppFramework\Http\Events\BeforeTemplateRenderedEvent; use OCP\EventDispatcher\Event; use OCP\EventDispatcher\IEventListener; +use OCP\IConfig; use OCP\INavigationManager; use OCP\IURLGenerator; +use OCP\Util; class BeforeTemplateRenderedListener implements IEventListener { + protected IConfig $config; protected SitesManager $sitesManager; protected INavigationManager $navigationManager; protected IURLGenerator $urlGenerator; public function __construct(SitesManager $sitesManager, + IConfig $config, INavigationManager $navigationManager, IURLGenerator $urlGenerator) { + $this->config = $config; $this->sitesManager = $sitesManager; $this->navigationManager = $navigationManager; $this->urlGenerator = $urlGenerator; @@ -45,7 +51,13 @@ class BeforeTemplateRenderedListener implements IEventListener { public function handle(Event $event): void { if ($event instanceof BeforeTemplateRenderedEvent) { $this->generateNavigationLinks(); + + $sso_admin_url = $this->config->getAppValue(Application::APP_ID, "sso_admin_url"); + if (empty(!$sso_admin_url)) { + Util::addStyle(Application::APP_ID, 'sso'); + } } + } protected function generateNavigationLinks(): void { diff --git a/lib/SitesManager.php b/lib/SitesManager.php index 3645a26..dce62a4 100644 --- a/lib/SitesManager.php +++ b/lib/SitesManager.php @@ -21,6 +21,7 @@ namespace OCA\Liiibre; +use OCA\Liiibre\AppInfo\Application; use OCA\Liiibre\Exceptions\SiteNotFoundException; use OCP\App\IAppManager; use OCP\Files\IAppData; @@ -33,20 +34,6 @@ use OCP\INavigationManager; use OCP\IURLGenerator; class SitesManager { - - const TYPE_LINK = 'link'; - const TYPE_SETTING = 'settings'; - const TYPE_LOGIN = 'guest'; - const TYPE_QUOTA = 'quota'; - - const DEVICE_ALL = ''; - const DEVICE_ANDROID = 'android'; - const DEVICE_IOS = 'ios'; - const DEVICE_DESKTOP = 'desktop'; - const DEVICE_BROWSER = 'browser'; - - const APP_NAME = 'liiibre'; - protected IRequest $request; protected IConfig $config; protected IAppManager $appManager; @@ -82,12 +69,13 @@ class SitesManager { } public function getSites(): array { - $chat_url = $this->config->getAppValue(self::APP_NAME, "chat_url"); - $doc_url = $this->config->getAppValue(self::APP_NAME, "doc_url") ?: "https://doc.liiib.re"; - $sso_account_url = $this->config->getAppValue(self::APP_NAME, "sso_account_url"); - $sso_admin_url = $this->config->getAppValue(self::APP_NAME, "sso_admin_url"); - $sso_redirect = filter_var($this->config->getAppValue(self::APP_NAME, "sso_redirect"), FILTER_VALIDATE_BOOLEAN); - $visio_url = $this->config->getAppValue(self::APP_NAME, "visio_url"); + $chat_url = $this->config->getAppValue(Application::APP_ID, "chat_url"); + $doc_url = $this->config->getAppValue(Application::APP_ID, "doc_url") ?: "https://doc.liiib.re"; + $doc_redirect = filter_var($this->config->getAppValue(Application::APP_ID, "doc_redirect"), FILTER_VALIDATE_BOOLEAN); + $sso_account_url = $this->config->getAppValue(Application::APP_ID, "sso_account_url"); + $sso_admin_url = $this->config->getAppValue(Application::APP_ID, "sso_admin_url"); + $sso_redirect = filter_var($this->config->getAppValue(Application::APP_ID, "sso_redirect"), FILTER_VALIDATE_BOOLEAN); + $visio_url = $this->config->getAppValue(Application::APP_ID, "visio_url"); $user = $this->userSession->getUser(); $isAdmin = false; @@ -118,6 +106,15 @@ class SitesManager { 'type' => INavigationManager::TYPE_SETTINGS, 'redirect' => $sso_redirect, ]; + + $sites[] = [ + 'id' => 6, + 'name' => "Quota des comptes", + 'icon' => "quota.png", + 'url' => "/settings/users", + 'type' => INavigationManager::TYPE_SETTINGS, + 'redirect' => true, + ]; } if ($sso_account_url) { @@ -137,7 +134,7 @@ class SitesManager { 'icon' => "lifesaver.png", 'url' => "$doc_url", 'type' => INavigationManager::TYPE_SETTINGS, - 'redirect' => true, + 'redirect' => $doc_redirect, ]; if ($visio_url) { @@ -151,18 +148,6 @@ class SitesManager { ]; } - - if ($isAdmin) { - $sites[] = [ - 'id' => 6, - 'name' => "Quota des comptes", - 'icon' => "quota.png", - 'url' => "/settings/users", - 'type' => INavigationManager::TYPE_SETTINGS, - 'redirect' => true, - ]; - } - return $sites; } -- GitLab