diff options
author | Vincent Petry <pvince81@owncloud.com> | 2015-03-13 12:49:11 +0100 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2015-03-13 12:49:11 +0100 |
commit | 34c8b1ac7732b4502beebea0dfeeaa8bac225550 (patch) | |
tree | 6fbcb5c17781157bf14afe141b9738814db393c5 /apps/files_external/lib | |
parent | 680ec056dc8c4fb84b8300967bcc12db2a57f225 (diff) | |
download | nextcloud-server-34c8b1ac7732b4502beebea0dfeeaa8bac225550.tar.gz nextcloud-server-34c8b1ac7732b4502beebea0dfeeaa8bac225550.zip |
Mount options for ext storage are now passed around
The mount options are now passed to the UI and stored in a hidden field.
The ext storage controllers and services also know how to load/save them
from the legacy config.
Diffstat (limited to 'apps/files_external/lib')
-rw-r--r-- | apps/files_external/lib/config.php | 12 | ||||
-rw-r--r-- | apps/files_external/lib/storageconfig.php | 29 |
2 files changed, 40 insertions, 1 deletions
diff --git a/apps/files_external/lib/config.php b/apps/files_external/lib/config.php index deeedb98551..378bedfa8de 100644 --- a/apps/files_external/lib/config.php +++ b/apps/files_external/lib/config.php @@ -357,6 +357,9 @@ class OC_Mount_Config { 'applicable' => array('groups' => array($group), 'users' => array()), 'status' => self::getBackendStatus($mount['class'], $mount['options'], false) ); + if (isset($mount['mountOptions'])) { + $config['mountOptions'] = $mount['mountOptions']; + } $hash = self::makeConfigHash($config); // If an existing config exists (with same class, mountpoint and options) if (isset($system[$hash])) { @@ -393,6 +396,9 @@ class OC_Mount_Config { 'applicable' => array('groups' => array(), 'users' => array($user)), 'status' => self::getBackendStatus($mount['class'], $mount['options'], false) ); + if (isset($mount['mountOptions'])) { + $config['mountOptions'] = $mount['mountOptions']; + } $hash = self::makeConfigHash($config); // If an existing config exists (with same class, mountpoint and options) if (isset($system[$hash])) { @@ -426,7 +432,7 @@ class OC_Mount_Config { $mount['class'] = '\OC\Files\Storage\\' . substr($mount['class'], 15); } $mount['options'] = self::decryptPasswords($mount['options']); - $personal[] = array( + $config = array( 'id' => (int) $mount['id'], 'storage_id' => (int) $mount['storage_id'], 'class' => $mount['class'], @@ -436,6 +442,10 @@ class OC_Mount_Config { 'options' => $mount['options'], 'status' => self::getBackendStatus($mount['class'], $mount['options'], true) ); + if (isset($mount['mountOptions'])) { + $config['mountOptions'] = $mount['mountOptions']; + } + $personal[] = $config; } } return $personal; diff --git a/apps/files_external/lib/storageconfig.php b/apps/files_external/lib/storageconfig.php index f23b5cd86a9..a45321516d4 100644 --- a/apps/files_external/lib/storageconfig.php +++ b/apps/files_external/lib/storageconfig.php @@ -54,6 +54,11 @@ class StorageConfig implements \JsonSerializable { private $applicableGroups = []; /** + * @var array + */ + private $mountOptions = []; + + /** * @param int|null $id config id or null for a new config */ public function __construct($id = null) { @@ -196,6 +201,27 @@ class StorageConfig implements \JsonSerializable { } /** + * Returns the mount-specific options + * + * @return array mount specific options + */ + public function getMountOptions() { + return $this->mountOptions; + } + + /** + * Sets the mount-specific options + * + * @param array applicable groups + */ + public function setMountOptions($mountOptions) { + if (is_null($mountOptions)) { + $mountOptions = []; + } + $this->mountOptions = $mountOptions; + } + + /** * Sets the storage status, whether the config worked last time * * @return int $status status @@ -235,6 +261,9 @@ class StorageConfig implements \JsonSerializable { if (!empty($this->applicableGroups)) { $result['applicableGroups'] = $this->applicableGroups; } + if (!empty($this->mountOptions)) { + $result['mountOptions'] = $this->mountOptions; + } if (!is_null($this->status)) { $result['status'] = $this->status; } |