Files
nextcloud-guests/lib/FilteredSettingsManager.php
Andy Scherzinger 8c08ef0b44 docs(reuse): Add SPDX header
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-12-18 13:37:32 +01:00

71 lines
1.9 KiB
PHP

<?php
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Guests;
use OCP\IUser;
use OCP\Settings\IIconSection;
use OCP\Settings\IManager;
class FilteredSettingsManager implements IManager {
/** @var IManager */
private $manager;
/** @var AppWhitelist */
private $appWhitelist;
public function __construct(IManager $manager, AppWhitelist $appWhitelist) {
$this->manager = $manager;
$this->appWhitelist = $appWhitelist;
}
private function isSettingAllowed(string $setting): bool {
$appId = \OC\AppFramework\App::getAppIdForClass($setting);
return $this->appWhitelist->isAppWhitelisted($appId);
}
public function registerSection(string $type, string $section) {
$this->manager->registerSection($type, $section);
}
public function registerSetting(string $type, string $setting) {
if (!$this->isSettingAllowed($setting)) {
return;
}
$this->manager->registerSetting($type, $setting);
}
public function getAdminSections(): array {
return $this->manager->getAdminSections();
}
public function getPersonalSections(): array {
return $this->manager->getPersonalSections();
}
public function getAdminSettings($section, bool $subAdminOnly = false): array {
return $this->manager->getAdminSettings($section, $subAdminOnly);
}
public function getAllowedAdminSettings(string $section, IUser $user): array {
return $this->manager->getAllowedAdminSettings($section, $user);
}
public function getAllAllowedAdminSettings(IUser $user): array {
return $this->manager->getAllAllowedAdminSettings($user);
}
public function getPersonalSettings($section): array {
return $this->manager->getPersonalSettings($section);
}
public function getSection(string $type, string $sectionId): ?IIconSection {
return $this->manager->getSection($type, $sectionId);
}
}