diff options
author | Arthur Schiwon <blizzz@arthur-schiwon.de> | 2016-08-16 18:31:59 +0200 |
---|---|---|
committer | Arthur Schiwon <blizzz@arthur-schiwon.de> | 2016-08-16 18:31:59 +0200 |
commit | 717e22267a1c23dda1b25b9d01bb1fada9ce8ab7 (patch) | |
tree | 544774d1018e19d462e79360b3fc86b6cdd39b16 /lib/private | |
parent | 4946cc220de5926ef86dc8557ffb5c990f6482d3 (diff) | |
parent | 9db189174c26326bbb58d96f614a415cd15542d1 (diff) | |
download | nextcloud-server-717e22267a1c23dda1b25b9d01bb1fada9ce8ab7.tar.gz nextcloud-server-717e22267a1c23dda1b25b9d01bb1fada9ce8ab7.zip |
Merge branch 'master' into implement_712
Diffstat (limited to 'lib/private')
-rw-r--r-- | lib/private/CapabilitiesManager.php | 21 | ||||
-rw-r--r-- | lib/private/Server.php | 2 | ||||
-rw-r--r-- | lib/private/legacy/util.php | 14 |
3 files changed, 27 insertions, 10 deletions
diff --git a/lib/private/CapabilitiesManager.php b/lib/private/CapabilitiesManager.php index 99a37d652a1..159fa97c708 100644 --- a/lib/private/CapabilitiesManager.php +++ b/lib/private/CapabilitiesManager.php @@ -22,15 +22,22 @@ namespace OC; +use OCP\AppFramework\QueryException; use OCP\Capabilities\ICapability; +use OCP\ILogger; class CapabilitiesManager { - /** - * @var \Closure[] - */ + /** @var \Closure[] */ private $capabilities = array(); + /** @var ILogger */ + private $logger; + + public function __construct(ILogger $logger) { + $this->logger = $logger; + } + /** * Get an array of al the capabilities that are registered at this manager * @@ -40,7 +47,13 @@ class CapabilitiesManager { public function getCapabilities() { $capabilities = []; foreach($this->capabilities as $capability) { - $c = $capability(); + try { + $c = $capability(); + } catch (QueryException $e) { + $this->logger->error('CapabilitiesManager: {message}', ['app' => 'core', 'message' => $e->getMessage()]); + continue; + } + if ($c instanceof ICapability) { $capabilities = array_replace_recursive($capabilities, $c->getCapabilities()); } else { diff --git a/lib/private/Server.php b/lib/private/Server.php index 245bbb338e2..44fc605826c 100644 --- a/lib/private/Server.php +++ b/lib/private/Server.php @@ -629,7 +629,7 @@ class Server extends ServerContainer implements IServerContainer { return new Manager(); }); $this->registerService('CapabilitiesManager', function (Server $c) { - $manager = new \OC\CapabilitiesManager(); + $manager = new \OC\CapabilitiesManager($c->getLogger()); $manager->registerCapability(function () use ($c) { return new \OC\OCS\CoreCapabilities($c->getConfig()); }); diff --git a/lib/private/legacy/util.php b/lib/private/legacy/util.php index 83274f82792..a31d02dc01e 100644 --- a/lib/private/legacy/util.php +++ b/lib/private/legacy/util.php @@ -165,6 +165,7 @@ class OC_Util { // install storage availability wrapper, before most other wrappers \OC\Files\Filesystem::addStorageWrapper('oc_availability', function ($mountPoint, $storage) { + /** @var \OCP\Files\Storage $storage */ if (!$storage->instanceOfStorage('\OC\Files\Storage\Shared') && !$storage->isLocal()) { return new \OC\Files\Storage\Wrapper\Availability(['storage' => $storage]); } @@ -290,16 +291,19 @@ class OC_Util { /** * Get the quota of a user * - * @param string $user + * @param string $userId * @return int Quota bytes */ - public static function getUserQuota($user) { - $userQuota = \OC::$server->getUserManager()->get($user)->getQuota(); + public static function getUserQuota($userId) { + $user = \OC::$server->getUserManager()->get($userId); + if (is_null($user)) { + return \OCP\Files\FileInfo::SPACE_UNLIMITED; + } + $userQuota = $user->getQuota(); if($userQuota === 'none') { return \OCP\Files\FileInfo::SPACE_UNLIMITED; - }else{ - return OC_Helper::computerFileSize($userQuota); } + return OC_Helper::computerFileSize($userQuota); } /** |