]> source.dussan.org Git - nextcloud-server.git/commitdiff
Allow hidden smb shares
authorDaniel Kesselberg <mail@danielkesselberg.de>
Mon, 20 May 2019 15:54:45 +0000 (17:54 +0200)
committerBackportbot <backportbot-noreply@rullzer.com>
Wed, 24 Jul 2019 10:44:19 +0000 (10:44 +0000)
A hidden smb share ends with $. This patch changes the placeholder
detection to allow shares with $ at the end.

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
apps/files_external/lib/config.php
apps/files_external/tests/Config/PlaceholderSubstituteTest.php [new file with mode: 0644]

index 47e68b4b1a01d76e41503f38b77fa8bfa1f5bacf..2f0cbaca790b16da207a5da33195b9c1109577f1 100644 (file)
@@ -292,7 +292,7 @@ class OC_Mount_Config {
                                }
                        }
                } else if (is_string($option)) {
-                       if (strpos($option, '$') !== false) {
+                       if (strpos(rtrim($option, '$'), '$') !== false) {
                                $result = false;
                        }
                }
diff --git a/apps/files_external/tests/Config/PlaceholderSubstituteTest.php b/apps/files_external/tests/Config/PlaceholderSubstituteTest.php
new file mode 100644 (file)
index 0000000..95ef8ab
--- /dev/null
@@ -0,0 +1,47 @@
+<?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],
+               ];
+       }
+
+       /**
+        * @dataProvider dataArePlaceholdersSubstituted
+        * @param string|array $option
+        * @param bool $expected
+        */
+       public function testArePlaceholdersSubstituted($option, $expected): void {
+               $this->assertSame($expected, OC_Mount_Config::arePlaceholdersSubstituted($option));
+       }
+
+}