Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Schwan <carl@carlschwan.eu>2021-10-15 21:59:43 +0300
committerGitHub <noreply@github.com>2021-10-15 21:59:43 +0300
commita67a12cb96250144c47ffb99ac1efa8a8c51a6b3 (patch)
tree70f6805d16880edcdcff4ae332e8c3e571db6446 /apps/dav/lib
parentff67ada049fdb26f881450f7899f8eccfcd33310 (diff)
parent719dbafd1339702a170f04ebbc4f20e80d45e8c9 (diff)
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.php2
-rw-r--r--apps/dav/lib/Settings/CalDAVSettings.php29
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)) . ')/']
+ ];
+ }
}