diff options
author | Carl Schwan <carl@carlschwan.eu> | 2021-10-15 20:59:43 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-15 20:59:43 +0200 |
commit | a67a12cb96250144c47ffb99ac1efa8a8c51a6b3 (patch) | |
tree | 70f6805d16880edcdcff4ae332e8c3e571db6446 /apps/dav/lib | |
parent | ff67ada049fdb26f881450f7899f8eccfcd33310 (diff) | |
parent | 719dbafd1339702a170f04ebbc4f20e80d45e8c9 (diff) | |
download | nextcloud-server-a67a12cb96250144c47ffb99ac1efa8a8c51a6b3.tar.gz nextcloud-server-a67a12cb96250144c47ffb99ac1efa8a8c51a6b3.zip |
Merge pull request #29240 from nextcloud/work/admin-delegation-implementation
Add support for Delegation Settings for more apps
Diffstat (limited to 'apps/dav/lib')
-rw-r--r-- | apps/dav/lib/Controller/BirthdayCalendarController.php | 2 | ||||
-rw-r--r-- | apps/dav/lib/Settings/CalDAVSettings.php | 29 |
2 files changed, 22 insertions, 9 deletions
diff --git a/apps/dav/lib/Controller/BirthdayCalendarController.php b/apps/dav/lib/Controller/BirthdayCalendarController.php index addcc4dd20a..4305d6daaef 100644 --- a/apps/dav/lib/Controller/BirthdayCalendarController.php +++ b/apps/dav/lib/Controller/BirthdayCalendarController.php @@ -88,6 +88,7 @@ class BirthdayCalendarController extends Controller { /** * @return Response + * @AuthorizedAdminSetting(settings=OCA\DAV\Settings\CalDAVSettings) */ public function enable() { $this->config->setAppValue($this->appName, 'generateBirthdayCalendar', 'yes'); @@ -104,6 +105,7 @@ class BirthdayCalendarController extends Controller { /** * @return Response + * @AuthorizedAdminSetting(settings=OCA\DAV\Settings\CalDAVSettings) */ public function disable() { $this->config->setAppValue($this->appName, 'generateBirthdayCalendar', 'no'); diff --git a/apps/dav/lib/Settings/CalDAVSettings.php b/apps/dav/lib/Settings/CalDAVSettings.php index 0e0525e29a4..fb541e1574f 100644 --- a/apps/dav/lib/Settings/CalDAVSettings.php +++ b/apps/dav/lib/Settings/CalDAVSettings.php @@ -29,9 +29,9 @@ use OCA\DAV\AppInfo\Application; use OCP\AppFramework\Http\TemplateResponse; use OCP\IConfig; use OCP\AppFramework\Services\IInitialState; -use OCP\Settings\ISettings; +use OCP\Settings\IDelegatedSettings; -class CalDAVSettings implements ISettings { +class CalDAVSettings implements IDelegatedSettings { /** @var IConfig */ private $config; @@ -39,6 +39,13 @@ class CalDAVSettings implements ISettings { /** @var IInitialState */ private $initialState; + private const defaults = [ + 'sendInvitations' => 'yes', + 'generateBirthdayCalendar' => 'yes', + 'sendEventReminders' => 'yes', + 'sendEventRemindersPush' => 'no', + ]; + /** * CalDAVSettings constructor. * @@ -51,13 +58,7 @@ class CalDAVSettings implements ISettings { } public function getForm(): TemplateResponse { - $defaults = [ - 'sendInvitations' => 'yes', - 'generateBirthdayCalendar' => 'yes', - 'sendEventReminders' => 'yes', - 'sendEventRemindersPush' => 'no', - ]; - foreach ($defaults as $key => $default) { + foreach (self::defaults as $key => $default) { $value = $this->config->getAppValue(Application::APP_ID, $key, $default); $this->initialState->provideInitialState($key, $value === 'yes'); } @@ -77,4 +78,14 @@ class CalDAVSettings implements ISettings { public function getPriority() { return 10; } + + public function getName(): ?string { + return null; // Only setting in this section + } + + public function getAuthorizedAppConfig(): array { + return [ + 'dav' => ['/(' . implode('|', array_keys(self::defaults)) . ')/'] + ]; + } } |