]> source.dussan.org Git - nextcloud-server.git/commitdiff
update capabilities
authorBjoern Schiessle <bjoern@schiessle.org>
Thu, 30 Mar 2017 14:29:34 +0000 (16:29 +0200)
committerBjoern Schiessle <bjoern@schiessle.org>
Fri, 7 Apr 2017 13:43:59 +0000 (15:43 +0200)
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
apps/files_sharing/lib/Capabilities.php
apps/files_sharing/tests/CapabilitiesTest.php

index bfbd15c11227eba1247282ebbf73653cee687f0b..ed00cdc00a6453a5bec691b2f4c8ca64888beaf8 100644 (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,
                ];
index 3d59b1f6f3460c1ac51ca8503f07acb9fd866bcd..79ac1854e405aa69c4f7eabae0fddbc692ffc9ff 100644 (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;
        }