summaryrefslogtreecommitdiffstats
path: root/apps/files_external/lib
diff options
context:
space:
mode:
authorVincent Petry <vincent@nextcloud.com>2023-01-16 14:22:16 +0100
committerGitHub <noreply@github.com>2023-01-16 14:22:16 +0100
commitf0b9b6ebaa315972ce7cbeb5a18919dc1ca9c97e (patch)
tree5fca3b127884e26664b340fa50216dfd7365d855 /apps/files_external/lib
parent60eac3fec589f69bbeed21e2b0108c2055afc0ca (diff)
parent4e179e0e07c848e3dcb31d1214a2516181e47d45 (diff)
downloadnextcloud-server-f0b9b6ebaa315972ce7cbeb5a18919dc1ca9c97e.tar.gz
nextcloud-server-f0b9b6ebaa315972ce7cbeb5a18919dc1ca9c97e.zip
Merge pull request #36089 from nextcloud/enh/noid/ext-storage-default-values
Ext storage configs default value support + enable SSL by default
Diffstat (limited to 'apps/files_external/lib')
-rw-r--r--apps/files_external/lib/Lib/Backend/AmazonS3.php3
-rw-r--r--apps/files_external/lib/Lib/Backend/DAV.php3
-rw-r--r--apps/files_external/lib/Lib/Backend/FTP.php3
-rw-r--r--apps/files_external/lib/Lib/Backend/OwnCloud.php3
-rw-r--r--apps/files_external/lib/Lib/DefinitionParameter.php66
5 files changed, 54 insertions, 24 deletions
diff --git a/apps/files_external/lib/Lib/Backend/AmazonS3.php b/apps/files_external/lib/Lib/Backend/AmazonS3.php
index 831064b632d..235986c429b 100644
--- a/apps/files_external/lib/Lib/Backend/AmazonS3.php
+++ b/apps/files_external/lib/Lib/Backend/AmazonS3.php
@@ -50,7 +50,8 @@ class AmazonS3 extends Backend {
(new DefinitionParameter('storageClass', $l->t('Storage Class')))
->setFlag(DefinitionParameter::FLAG_OPTIONAL),
(new DefinitionParameter('use_ssl', $l->t('Enable SSL')))
- ->setType(DefinitionParameter::VALUE_BOOLEAN),
+ ->setType(DefinitionParameter::VALUE_BOOLEAN)
+ ->setDefaultValue(true),
(new DefinitionParameter('use_path_style', $l->t('Enable Path Style')))
->setType(DefinitionParameter::VALUE_BOOLEAN),
(new DefinitionParameter('legacy_auth', $l->t('Legacy (v2) authentication')))
diff --git a/apps/files_external/lib/Lib/Backend/DAV.php b/apps/files_external/lib/Lib/Backend/DAV.php
index cf16677334d..71c97e639ff 100644
--- a/apps/files_external/lib/Lib/Backend/DAV.php
+++ b/apps/files_external/lib/Lib/Backend/DAV.php
@@ -43,7 +43,8 @@ class DAV extends Backend {
(new DefinitionParameter('root', $l->t('Remote subfolder')))
->setFlag(DefinitionParameter::FLAG_OPTIONAL),
(new DefinitionParameter('secure', $l->t('Secure https://')))
- ->setType(DefinitionParameter::VALUE_BOOLEAN),
+ ->setType(DefinitionParameter::VALUE_BOOLEAN)
+ ->setDefaultValue(true),
])
->addAuthScheme(AuthMechanism::SCHEME_PASSWORD)
->setLegacyAuthMechanism($legacyAuth)
diff --git a/apps/files_external/lib/Lib/Backend/FTP.php b/apps/files_external/lib/Lib/Backend/FTP.php
index 587f3e68535..d7c6e3bebd6 100644
--- a/apps/files_external/lib/Lib/Backend/FTP.php
+++ b/apps/files_external/lib/Lib/Backend/FTP.php
@@ -43,7 +43,8 @@ class FTP extends Backend {
(new DefinitionParameter('root', $l->t('Remote subfolder')))
->setFlag(DefinitionParameter::FLAG_OPTIONAL),
(new DefinitionParameter('secure', $l->t('Secure ftps://')))
- ->setType(DefinitionParameter::VALUE_BOOLEAN),
+ ->setType(DefinitionParameter::VALUE_BOOLEAN)
+ ->setDefaultValue(true),
])
->addAuthScheme(AuthMechanism::SCHEME_PASSWORD)
->setLegacyAuthMechanism($legacyAuth)
diff --git a/apps/files_external/lib/Lib/Backend/OwnCloud.php b/apps/files_external/lib/Lib/Backend/OwnCloud.php
index 8b33b98b5c4..97297b6a977 100644
--- a/apps/files_external/lib/Lib/Backend/OwnCloud.php
+++ b/apps/files_external/lib/Lib/Backend/OwnCloud.php
@@ -41,7 +41,8 @@ class OwnCloud extends Backend {
(new DefinitionParameter('root', $l->t('Remote subfolder')))
->setFlag(DefinitionParameter::FLAG_OPTIONAL),
(new DefinitionParameter('secure', $l->t('Secure https://')))
- ->setType(DefinitionParameter::VALUE_BOOLEAN),
+ ->setType(DefinitionParameter::VALUE_BOOLEAN)
+ ->setDefaultValue(true),
])
->addAuthScheme(AuthMechanism::SCHEME_PASSWORD)
->setLegacyAuthMechanism($legacyAuth)
diff --git a/apps/files_external/lib/Lib/DefinitionParameter.php b/apps/files_external/lib/Lib/DefinitionParameter.php
index 6b081d5a089..ce0a37b4e9b 100644
--- a/apps/files_external/lib/Lib/DefinitionParameter.php
+++ b/apps/files_external/lib/Lib/DefinitionParameter.php
@@ -43,40 +43,45 @@ class DefinitionParameter implements \JsonSerializable {
public const FLAG_USER_PROVIDED = 2;
/** @var string name of parameter */
- private $name;
+ private string $name;
/** @var string human-readable parameter text */
- private $text;
+ private string $text;
/** @var string human-readable parameter tooltip */
- private $tooltip = '';
+ private string $tooltip = '';
/** @var int value type, see self::VALUE_* constants */
- private $type = self::VALUE_TEXT;
+ private int $type = self::VALUE_TEXT;
/** @var int flags, see self::FLAG_* constants */
- private $flags = self::FLAG_NONE;
+ private int $flags = self::FLAG_NONE;
+
+ /** @var mixed */
+ private $defaultValue;
/**
- * @param string $name
- * @param string $text
+ * @param string $name parameter name
+ * @param string $text parameter description
+ * @param mixed $defaultValue default value
*/
- public function __construct($name, $text) {
+ public function __construct(string $name, string $text, $defaultValue = null) {
$this->name = $name;
$this->text = $text;
+ $this->defaultValue = $defaultValue;
}
/**
* @return string
*/
- public function getName() {
+ public function getName(): string {
return $this->name;
}
/**
* @return string
*/
- public function getText() {
+ public function getText(): string {
return $this->text;
}
@@ -85,7 +90,7 @@ class DefinitionParameter implements \JsonSerializable {
*
* @return int
*/
- public function getType() {
+ public function getType(): int {
return $this->type;
}
@@ -95,15 +100,31 @@ class DefinitionParameter implements \JsonSerializable {
* @param int $type
* @return self
*/
- public function setType($type) {
+ public function setType(int $type) {
$this->type = $type;
return $this;
}
/**
+ * @return mixed default value
+ */
+ public function getDefaultValue() {
+ return $this->defaultValue;
+ }
+
+ /**
+ * @param mixed $defaultValue default value
+ * @return self
+ */
+ public function setDefaultValue($defaultValue) {
+ $this->defaultValue = $defaultValue;
+ return $this;
+ }
+
+ /**
* @return string
*/
- public function getTypeName() {
+ public function getTypeName(): string {
switch ($this->type) {
case self::VALUE_BOOLEAN:
return 'boolean';
@@ -119,7 +140,7 @@ class DefinitionParameter implements \JsonSerializable {
/**
* @return int
*/
- public function getFlags() {
+ public function getFlags(): int {
return $this->flags;
}
@@ -127,7 +148,7 @@ class DefinitionParameter implements \JsonSerializable {
* @param int $flags
* @return self
*/
- public function setFlags($flags) {
+ public function setFlags(int $flags) {
$this->flags = $flags;
return $this;
}
@@ -136,7 +157,7 @@ class DefinitionParameter implements \JsonSerializable {
* @param int $flag
* @return self
*/
- public function setFlag($flag) {
+ public function setFlag(int $flag) {
$this->flags |= $flag;
return $this;
}
@@ -145,7 +166,7 @@ class DefinitionParameter implements \JsonSerializable {
* @param int $flag
* @return bool
*/
- public function isFlagSet($flag) {
+ public function isFlagSet(int $flag): bool {
return (bool)($this->flags & $flag);
}
@@ -169,15 +190,20 @@ class DefinitionParameter implements \JsonSerializable {
* Serialize into JSON for client-side JS
*/
public function jsonSerialize(): array {
- return [
+ $result = [
'value' => $this->getText(),
'flags' => $this->getFlags(),
'type' => $this->getType(),
'tooltip' => $this->getTooltip(),
];
+ $defaultValue = $this->getDefaultValue();
+ if ($defaultValue) {
+ $result['defaultValue'] = $defaultValue;
+ }
+ return $result;
}
- public function isOptional() {
+ public function isOptional(): bool {
return $this->isFlagSet(self::FLAG_OPTIONAL) || $this->isFlagSet(self::FLAG_USER_PROVIDED);
}
@@ -188,7 +214,7 @@ class DefinitionParameter implements \JsonSerializable {
* @param mixed $value Value to check
* @return bool success
*/
- public function validateValue(&$value) {
+ public function validateValue(&$value): bool {
switch ($this->getType()) {
case self::VALUE_BOOLEAN:
if (!is_bool($value)) {