summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoeland Jago Douma <roeland@famdouma.nl>2015-01-26 16:09:14 +0100
committerRoeland Jago Douma <roeland@famdouma.nl>2015-02-04 14:56:31 +0100
commitb3ea849a8704d29fad0a738af8af3430ebb5b3af (patch)
treed7738d6c21cca8d7993844e0ece0f4a970fe0b95
parent77e9c212edb1b0b1bbd2dfc8231ce5f183d6c3c8 (diff)
downloadnextcloud-server-b3ea849a8704d29fad0a738af8af3430ebb5b3af.tar.gz
nextcloud-server-b3ea849a8704d29fad0a738af8af3430ebb5b3af.zip
Added capabilities whether a server allows public links
This fixes #13673. It now lists link sharing, passwords enforced, and if public uploads are allowed.
-rw-r--r--apps/files_sharing/appinfo/routes.php7
-rw-r--r--apps/files_sharing/lib/capabilities.php53
2 files changed, 60 insertions, 0 deletions
diff --git a/apps/files_sharing/appinfo/routes.php b/apps/files_sharing/appinfo/routes.php
index dd9509575b7..44ab5c0de99 100644
--- a/apps/files_sharing/appinfo/routes.php
+++ b/apps/files_sharing/appinfo/routes.php
@@ -56,3 +56,10 @@ $this->create('sharing_external_test_remote', '/testremote')
'/apps/files_sharing/api/v1/shares/{id}',
array('\OCA\Files_Sharing\API\Local', 'deleteShare'),
'files_sharing');
+
+// Register with the capabilities API
+\OC_API::register('get',
+ '/cloud/capabilities',
+ array('OCA\Files_Sharing\Capabilities', 'getCapabilities'),
+ 'files_sharing',
+ \OC_API::USER_AUTH);
diff --git a/apps/files_sharing/lib/capabilities.php b/apps/files_sharing/lib/capabilities.php
new file mode 100644
index 00000000000..712eb2317b4
--- /dev/null
+++ b/apps/files_sharing/lib/capabilities.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * Copyright (c) Roeland Jago Douma <roeland@famdouma.nl>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OCA\Files_Sharing;
+
+
+/**
+ * Class Capabilities
+ *
+ * @package OCA\Files_Sharing
+ */
+class Capabilities {
+
+ /**
+ * @return \OC_OCS_Result
+ */
+ public static function getCapabilities() {
+ $config = \OC::$server->getConfig();
+
+ $res = array();
+ if ($config->getAppValue('core', 'shareapi_allow_links', 'yes') === "yes") {
+ $res["allow_links"] = 1;
+
+ if ($config->getAppValue('core', 'shareapi_enforce_links_password', 'yes') === "yes") {
+ $res["enforce_links_password"] = 1;
+ } else {
+ $res["enforce_links_password"] = 0;
+ }
+
+ if ($config->getAppValue('core', 'shareapi_allow_public_upload', 'yes') === "yes") {
+ $res["allow_public_upload"] = 1;
+ } else {
+ $res["allow_public_upload"] = 0;
+ }
+ } else {
+ $res["allow_links"] = 0;
+ }
+
+ return new \OC_OCS_Result(array(
+ 'capabilities' => array(
+ 'files' => array(
+ 'sharing' => $res
+ ),
+ ),
+ ));
+ }
+
+}