*/
namespace OCA\Files_Sharing;
+use OCP\App\IAppManager;
use OCP\Capabilities\ICapability;
use \OCP\IConfig;
/** @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;
}
/**
$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,
];
use OCA\Files_Sharing\Capabilities;
use OCA\Files_Sharing\Tests\TestCase;
+use OCP\App\IAppManager;
/**
* Class CapabilitiesTest
}
/**
- * 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
*
* @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;
}