diff options
author | Roeland Jago Douma <roeland@famdouma.nl> | 2015-01-26 16:09:14 +0100 |
---|---|---|
committer | Roeland Jago Douma <roeland@famdouma.nl> | 2015-02-04 14:56:31 +0100 |
commit | b3ea849a8704d29fad0a738af8af3430ebb5b3af (patch) | |
tree | d7738d6c21cca8d7993844e0ece0f4a970fe0b95 | |
parent | 77e9c212edb1b0b1bbd2dfc8231ce5f183d6c3c8 (diff) | |
download | nextcloud-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.php | 7 | ||||
-rw-r--r-- | apps/files_sharing/lib/capabilities.php | 53 |
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 + ), + ), + )); + } + +} |