summaryrefslogtreecommitdiffstats
path: root/apps/sharebymail
diff options
context:
space:
mode:
authorBjoern Schiessle <bjoern@schiessle.org>2016-10-31 11:52:00 +0100
committerBjoern Schiessle <bjoern@schiessle.org>2016-11-01 19:54:41 +0100
commit86b362809bb58c12864fce93af9c6e961bb7301d (patch)
treea1b19e6be605f5b52d0375f355c5ea440aa5f21f /apps/sharebymail
parentce08682c2fdeaeb835cd41c0e9e1207a4da422ab (diff)
downloadnextcloud-server-86b362809bb58c12864fce93af9c6e961bb7301d.tar.gz
nextcloud-server-86b362809bb58c12864fce93af9c6e961bb7301d.zip
always show correct place holder, mention share by mail only if the share provider is enabled
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
Diffstat (limited to 'apps/sharebymail')
-rw-r--r--apps/sharebymail/appinfo/app.php24
-rw-r--r--apps/sharebymail/lib/Settings.php38
-rw-r--r--apps/sharebymail/tests/SettingsTest.php64
3 files changed, 126 insertions, 0 deletions
diff --git a/apps/sharebymail/appinfo/app.php b/apps/sharebymail/appinfo/app.php
new file mode 100644
index 00000000000..5ef7b6f18cb
--- /dev/null
+++ b/apps/sharebymail/appinfo/app.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * @copyright Copyright (c) 2016 Bjoern Schiessle <bjoern@schiessle.org>
+ *
+ * @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/>.
+ *
+ */
+
+$settings = new \OCA\ShareByMail\Settings();
+
+\OCP\Util::connectHook('\OCP\Config', 'js', $settings, 'announceShareProvider');
diff --git a/apps/sharebymail/lib/Settings.php b/apps/sharebymail/lib/Settings.php
new file mode 100644
index 00000000000..4ab1622425b
--- /dev/null
+++ b/apps/sharebymail/lib/Settings.php
@@ -0,0 +1,38 @@
+<?php
+/**
+ * @copyright Copyright (c) 2016 Bjoern Schiessle <bjoern@schiessle.org>
+ *
+ * @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\ShareByMail;
+
+
+class Settings {
+
+ /**
+ * announce that the share-by-mail share provider is enabled
+ *
+ * @param array $settings
+ */
+ public function announceShareProvider(array $settings) {
+ $array = json_decode($settings['array']['oc_appconfig'], true);
+ $array['shareByMailEnabled'] = true;
+ $settings['array']['oc_appconfig'] = json_encode($array);
+ }
+}
diff --git a/apps/sharebymail/tests/SettingsTest.php b/apps/sharebymail/tests/SettingsTest.php
new file mode 100644
index 00000000000..f415421b0cf
--- /dev/null
+++ b/apps/sharebymail/tests/SettingsTest.php
@@ -0,0 +1,64 @@
+<?php
+/**
+ * @copyright Copyright (c) 2016 Bjoern Schiessle <bjoern@schiessle.org>
+ *
+ * @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\ShareByMail\Tests;
+
+
+use OCA\ShareByMail\Settings;
+use Test\TestCase;
+
+class SettingsTest extends TestCase {
+
+ /** @var Settings */
+ private $instance;
+
+ public function setUp() {
+ parent::setUp();
+
+ $this->instance = new Settings();
+ }
+
+ public function testAnnounceShareProvider() {
+ $before = [
+ 'oc_appconfig' =>
+ json_encode([
+ 'key1' => 'value1',
+ 'key2' => 'value2'
+ ]),
+ 'oc_foo' => 'oc_bar'
+ ];
+
+ $after = [
+ 'oc_appconfig' =>
+ json_encode([
+ 'key1' => 'value1',
+ 'key2' => 'value2',
+ 'shareByMailEnabled' => true
+ ]),
+ 'oc_foo' => 'oc_bar'
+ ];
+
+ $this->instance->announceShareProvider(['array' => &$before]);
+ $this->assertSame($after, $before);
+ }
+
+}