diff --git a/css/sso.css b/css/sso.css new file mode 100644 index 0000000000000000000000000000000000000000..4152849b03399232aef1694aaf63abd0bb13dcb7 --- /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 98244660a28e168a0e6ff2d5cd27cf5a7b1aa82b..af6ef1186df7cab8719a4ec7b765d4206c9419a6 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 cd63216163744b1e5b4d4822a7f94331e7928709..7d7ff3367e97e3a1d664f2a9542d4f0b6aeb5ed1 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 424dca31897d9c90d7faacde12449d9fca81d0d8..c3eed16bd0ffb023e637ccd632d4ab908e5421a4 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 3645a2628f86ce0150ca24ec6dfed5aee6b17550..dce62a451e9bcf5e074643b286cc064e7899dcc1 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; }