[Pkg-owncloud-commits] [owncloud] 128/223: add settings to disable server to server sharing

David Prévot taffit at moszumanska.debian.org
Sun Jun 22 01:54:15 UTC 2014


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository owncloud.

commit 84a651e46deff5fe577ed564e5826ff24c18f9a5
Author: Bjoern Schiessle <schiessle at owncloud.com>
Date:   Thu Jun 12 19:49:52 2014 +0200

    add settings to disable server to server sharing
---
 apps/files_sharing/ajax/external.php            | 14 ++++++++++++--
 apps/files_sharing/appinfo/app.php              |  2 ++
 apps/files_sharing/js/external.js               |  6 +++---
 apps/files_sharing/js/settings-admin.js         | 11 +++++++++++
 apps/files_sharing/lib/helper.php               | 20 ++++++++++++++++++++
 apps/files_sharing/publicwebdav.php             |  4 ++++
 apps/files_sharing/settings-admin.php           | 17 +++++++++++++++++
 apps/files_sharing/templates/settings-admin.php | 13 +++++++++++++
 8 files changed, 82 insertions(+), 5 deletions(-)

diff --git a/apps/files_sharing/ajax/external.php b/apps/files_sharing/ajax/external.php
index 3759559..5b4d465 100644
--- a/apps/files_sharing/ajax/external.php
+++ b/apps/files_sharing/ajax/external.php
@@ -9,6 +9,14 @@
 OCP\JSON::callCheck();
 OCP\JSON::checkLoggedIn();
 
+$l = OC_L10N::get('files_sharing');
+
+// check if server admin allows to mount public links from other servers
+if (OCA\Files_Sharing\Helper::isIncomingServer2serverShareEnabled() === false) {
+	\OCP\JSON::error(array('data' => array('message' => $l->t('Server to server sharing is not enabled on this server'))));
+	exit();
+}
+
 $token = $_POST['token'];
 $remote = $_POST['remote'];
 $owner = $_POST['owner'];
@@ -32,6 +40,8 @@ $storage = $mount->getStorage();
 $result = $storage->file_exists('');
 if($result){
 	$storage->getScanner()->scanAll();
+	\OCP\JSON::success();
+} else {
+	$externalManager->removeShare($mount->getMountPoint());
+	\OCP\JSON::error(array('data' => array('message' => $l->t("Couldn't add remote share"))));
 }
-
-echo json_encode($result);
diff --git a/apps/files_sharing/appinfo/app.php b/apps/files_sharing/appinfo/app.php
index db4e042..a9f4ff5 100644
--- a/apps/files_sharing/appinfo/app.php
+++ b/apps/files_sharing/appinfo/app.php
@@ -12,6 +12,8 @@ OC::$CLASSPATH['OCA\Files\Share\Api'] = 'files_sharing/lib/api.php';
 OC::$CLASSPATH['OCA\Files\Share\Maintainer'] = 'files_sharing/lib/maintainer.php';
 OC::$CLASSPATH['OCA\Files\Share\Proxy'] = 'files_sharing/lib/proxy.php';
 
+\OCP\App::registerAdmin('files_sharing', 'settings-admin');
+
 $externalManager = new \OCA\Files_Sharing\External\Manager(
 	\OC::$server->getDatabaseConnection(),
 	\OC\Files\Filesystem::getMountManager(),
diff --git a/apps/files_sharing/js/external.js b/apps/files_sharing/js/external.js
index 5e133db..bc02ecf 100644
--- a/apps/files_sharing/js/external.js
+++ b/apps/files_sharing/js/external.js
@@ -22,10 +22,10 @@ $(document).ready(function () {
 			password = password || '';
 			if (add) {
 				addExternalShare(remote, token, owner, name, password).then(function (result) {
-					if (result && result !== 'false') {
-						FileList.reload();
+					if (result.status === 'error') {
+						OC.Notification.show(result.data.message);
 					} else {
-						OC.dialogs.alert('Error adding ' + name, 'Error adding share');
+						FileList.reload();
 					}
 				});
 			}
diff --git a/apps/files_sharing/js/settings-admin.js b/apps/files_sharing/js/settings-admin.js
new file mode 100644
index 0000000..257c864
--- /dev/null
+++ b/apps/files_sharing/js/settings-admin.js
@@ -0,0 +1,11 @@
+$(document).ready(function() {
+
+	$('#fileSharingSettings input').change(function() {
+		var value = 'no';
+		if (this.checked) {
+			value = 'yes';
+		}
+		OC.AppConfig.setValue('files_sharing', $(this).attr('name'), value);
+	});
+
+});
diff --git a/apps/files_sharing/lib/helper.php b/apps/files_sharing/lib/helper.php
index 49546f0..a86cb83 100644
--- a/apps/files_sharing/lib/helper.php
+++ b/apps/files_sharing/lib/helper.php
@@ -202,4 +202,24 @@ class Helper {
 
 		return $path;
 	}
+
+	/**
+	 * allow users from other ownCloud instances to mount public links share by this instance
+	 * @return bool
+	 */
+	public static function isOutgoingServer2serverShareEnabled() {
+		$appConfig = \OC::$server->getAppConfig();
+		$result = $appConfig->getValue('files_sharing', 'outgoing_server2server_share_enabled', 'yes');
+		return ($result === 'yes') ? true : false;
+	}
+
+	/**
+	 * allow user to mount public links from onther ownClouds
+	 * @return bool
+	 */
+	public static function isIncomingServer2serverShareEnabled() {
+		$appConfig = \OC::$server->getAppConfig();
+		$result = $appConfig->getValue('files_sharing', 'incoming_server2server_share_enabled', 'yes');
+		return ($result === 'yes') ? true : false;
+	}
 }
diff --git a/apps/files_sharing/publicwebdav.php b/apps/files_sharing/publicwebdav.php
index f33b920..b41d3a2 100644
--- a/apps/files_sharing/publicwebdav.php
+++ b/apps/files_sharing/publicwebdav.php
@@ -6,6 +6,10 @@
  * See the COPYING-README file.
  */
 
+if (OCA\Files_Sharing\Helper::isOutgoingServer2serverShareEnabled() === false) {
+	return false;
+}
+
 // load needed apps
 $RUNTIME_APPTYPES = array('filesystem', 'authentication', 'logging');
 
diff --git a/apps/files_sharing/settings-admin.php b/apps/files_sharing/settings-admin.php
new file mode 100644
index 0000000..9c630b6
--- /dev/null
+++ b/apps/files_sharing/settings-admin.php
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Copyright (c) 2011 Robin Appelman <icewind at owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+\OC_Util::checkAdminUser();
+
+\OCP\Util::addScript('files_sharing', 'settings-admin');
+
+$tmpl = new OCP\Template('files_sharing', 'settings-admin');
+$tmpl->assign('outgoingServer2serverShareEnabled', OCA\Files_Sharing\Helper::isOutgoingServer2serverShareEnabled());
+$tmpl->assign('incomingServer2serverShareEnabled', OCA\Files_Sharing\Helper::isIncomingServer2serverShareEnabled());
+
+return $tmpl->fetchPage();
diff --git a/apps/files_sharing/templates/settings-admin.php b/apps/files_sharing/templates/settings-admin.php
new file mode 100644
index 0000000..18cf227
--- /dev/null
+++ b/apps/files_sharing/templates/settings-admin.php
@@ -0,0 +1,13 @@
+<div class="section" id="fileSharingSettings" >
+
+	<h2><?php p($l->t('File Sharing'));?></h2>
+
+	<input type="checkbox" name="outgoing_server2server_share_enabled" id="outgoingServer2serverShareEnabled"
+		   value="1" <?php if ($_['outgoingServer2serverShareEnabled']) print_unescaped('checked="checked"'); ?> />
+	<label for="outgoingServer2serverShareEnabled"><?php p($l->t('Allow other instances to mount public links shared from this server'));?></label><br/>
+
+	<input type="checkbox" name="incoming_server2server_share_enabled" id="incomingServer2serverShareEnabled"
+		   value="1" <?php if ($_['incomingServer2serverShareEnabled']) print_unescaped('checked="checked"'); ?> />
+	<label for="incomingServer2serverShareEnabled"><?php p($l->t('Allow users to mount public link shares'));?></label><br/>
+
+</div>

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git



More information about the Pkg-owncloud-commits mailing list