summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorBjoern Schiessle <bjoern@schiessle.org>2017-03-30 16:29:34 +0200
committerBjoern Schiessle <bjoern@schiessle.org>2017-04-07 15:43:59 +0200
commit676a4c781a5ff16ea34259c2958521596efc89b1 (patch)
tree8a7d79bbfde175b546d93a37063834b4a55a8702 /apps
parent5540def5e332b30d42c0c3484d3c732278f8f6b8 (diff)
downloadnextcloud-server-676a4c781a5ff16ea34259c2958521596efc89b1.tar.gz
nextcloud-server-676a4c781a5ff16ea34259c2958521596efc89b1.zip
update capabilities
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
Diffstat (limited to 'apps')
-rw-r--r--apps/files_sharing/lib/Capabilities.php26
-rw-r--r--apps/files_sharing/tests/CapabilitiesTest.php11
2 files changed, 31 insertions, 6 deletions
diff --git a/apps/files_sharing/lib/Capabilities.php b/apps/files_sharing/lib/Capabilities.php
index bfbd15c1122..ed00cdc00a6 100644
--- a/apps/files_sharing/lib/Capabilities.php
+++ b/apps/files_sharing/lib/Capabilities.php
@@ -21,6 +21,7 @@
*/
namespace OCA\Files_Sharing;
+use OCP\App\IAppManager;
use OCP\Capabilities\ICapability;
use \OCP\IConfig;
@@ -34,8 +35,12 @@ class Capabilities implements ICapability {
/** @var IConfig */
private $config;
- public function __construct(IConfig $config) {
+ /** @var IAppManager */
+ private $appManager;
+
+ public function __construct(IConfig $config, IAppManager $appManager) {
$this->config = $config;
+ $this->appManager = $appManager;
}
/**
@@ -76,16 +81,33 @@ class Capabilities implements ICapability {
$res['resharing'] = $this->config->getAppValue('core', 'shareapi_allow_resharing', 'yes') === 'yes';
$res['user']['send_mail'] = false;
+ $res['user']['expire_date']['enabled'] = true;
+ // deprecated in favour of 'group', but we need to keep it for now
+ // in order to stay compatible with older clients
$res['group_sharing'] = $this->config->getAppValue('core', 'shareapi_allow_group_sharing', 'yes') === 'yes';
+
+ $res['group'] = [];
+ $res['group']['enabled'] = $this->config->getAppValue('core', 'shareapi_allow_group_sharing', 'yes') === 'yes';
+ $res['group']['expire_date']['enabled'] = true;
}
//Federated sharing
$res['federation'] = [
'outgoing' => $this->config->getAppValue('files_sharing', 'outgoing_server2server_share_enabled', 'yes') === 'yes',
- 'incoming' => $this->config->getAppValue('files_sharing', 'incoming_server2server_share_enabled', 'yes') === 'yes'
+ 'incoming' => $this->config->getAppValue('files_sharing', 'incoming_server2server_share_enabled', 'yes') === 'yes',
+ 'expire_date' => ['enabled' => true]
];
+ if ($this->appManager->isEnabledForUser('sharebymail')) {
+ $res['mailshare'] = [
+ 'enabled' => true,
+ 'upload_files_drop' => ['enabled' => true],
+ 'password' => ['enabled' => true],
+ 'expire_date' => ['enabled' => true]
+ ];
+ }
+
return [
'files_sharing' => $res,
];
diff --git a/apps/files_sharing/tests/CapabilitiesTest.php b/apps/files_sharing/tests/CapabilitiesTest.php
index 3d59b1f6f34..79ac1854e40 100644
--- a/apps/files_sharing/tests/CapabilitiesTest.php
+++ b/apps/files_sharing/tests/CapabilitiesTest.php
@@ -25,6 +25,7 @@ namespace OCA\Files_Sharing\Tests;
use OCA\Files_Sharing\Capabilities;
use OCA\Files_Sharing\Tests\TestCase;
+use OCP\App\IAppManager;
/**
* Class CapabilitiesTest
@@ -46,7 +47,7 @@ class CapabilitiesTest extends \Test\TestCase {
}
/**
- * Create a mock config object and insert the values in $map tot the getAppValue
+ * Create a mock config object and insert the values in $map to the getAppValue
* function. Then obtain the capabilities and extract the first few
* levels in the array
*
@@ -54,9 +55,11 @@ class CapabilitiesTest extends \Test\TestCase {
* @return string[]
*/
private function getResults(array $map) {
- $stub = $this->getMockBuilder('\OCP\IConfig')->disableOriginalConstructor()->getMock();
- $stub->method('getAppValue')->will($this->returnValueMap($map));
- $cap = new Capabilities($stub);
+ $config = $this->getMockBuilder('\OCP\IConfig')->disableOriginalConstructor()->getMock();
+ $config->method('getAppValue')->will($this->returnValueMap($map));
+ $appManager = $this->getMockBuilder(IAppManager::class)->getMock();
+ $appManager->expects($this->any())->method('isEnabledForUser')->with('sharebymail')->willReturn(true);
+ $cap = new Capabilities($config, $appManager);
$result = $this->getFilesSharingPart($cap->getCapabilities());
return $result;
}