update capabilities

Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
This commit is contained in:
Bjoern Schiessle 2017-03-30 16:29:34 +02:00
parent 5540def5e3
commit 676a4c781a
No known key found for this signature in database
GPG Key ID: 2378A753E2BF04F6
2 changed files with 31 additions and 6 deletions

View File

@ -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,
];

View File

@ -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;
}