]> source.dussan.org Git - nextcloud-server.git/commitdiff
remove the requirement that everything that looks like a placeholder is substituted 20021/head
authorRobin Appelman <robin@icewind.nl>
Fri, 13 Mar 2020 14:29:14 +0000 (15:29 +0100)
committerbackportbot[bot] <backportbot[bot]@users.noreply.github.com>
Wed, 18 Mar 2020 16:11:27 +0000 (16:11 +0000)
While maybe not common, `$` is a valid option in config fields

Signed-off-by: Robin Appelman <robin@icewind.nl>
apps/files_external/lib/config.php
apps/files_external/tests/Config/PlaceholderSubstituteTest.php [deleted file]

index 9040f40e66b0aa2a0ec636e92520083b114a67a1..f799fd25f570c667d5e1a6ec7fdcb35bac5414c0 100644 (file)
@@ -252,20 +252,6 @@ class OC_Mount_Config {
                                continue;
                        }
                        $option = self::substitutePlaceholdersInConfig($option);
-                       if(!self::arePlaceholdersSubstituted($option)) {
-                               \OC::$server->getLogger()->error(
-                                       'A placeholder was not substituted: {option} for mount type {class}',
-                                       [
-                                               'app' => 'files_external',
-                                               'option' => $option,
-                                               'class' => $class,
-                                       ]
-                               );
-                               throw new StorageNotAvailableException(
-                                       'Mount configuration incomplete',
-                                       StorageNotAvailableException::STATUS_INCOMPLETE_CONF
-                               );
-                       }
                }
                if (class_exists($class)) {
                        try {
@@ -290,20 +276,6 @@ class OC_Mount_Config {
                return StorageNotAvailableException::STATUS_ERROR;
        }
 
-       public static function arePlaceholdersSubstituted($option):bool {
-               $result = true;
-               if(is_array($option)) {
-                       foreach ($option as $optionItem) {
-                               $result = $result && self::arePlaceholdersSubstituted($optionItem);
-                       }
-               } else if (is_string($option)) {
-                       if (strpos(rtrim($option, '$'), '$') !== false) {
-                               $result = false;
-                       }
-               }
-               return $result;
-       }
-
        /**
         * Read the mount points in the config file into an array
         *
diff --git a/apps/files_external/tests/Config/PlaceholderSubstituteTest.php b/apps/files_external/tests/Config/PlaceholderSubstituteTest.php
deleted file mode 100644 (file)
index 3cc19bf..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-/**
- * @copyright Copyright (c) 2019 Daniel Kesselberg <mail@danielkesselberg.de>
- *
- * @author Daniel Kesselberg <mail@danielkesselberg.de>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-namespace OCA\files_external\tests\Config;
-
-use OC_Mount_Config;
-use Test\TestCase;
-
-class PlaceholderSubstituteTest extends TestCase {
-
-       public function dataArePlaceholdersSubstituted(): array {
-               return [
-                       ['smb_$user', false],
-                       ['hidden_share$', true],
-                       [['smb_$user', 'hidden_share$'], false],
-                       [['smb_hello', 'hidden_share$'], true]
-               ];
-       }
-
-       /**
-        * @dataProvider dataArePlaceholdersSubstituted
-        * @param string|array $option
-        * @param bool $expected
-        */
-       public function testArePlaceholdersSubstituted($option, $expected): void {
-               $this->assertSame($expected, OC_Mount_Config::arePlaceholdersSubstituted($option));
-       }
-
-}