diff options
author | Vincent Petry <pvince81@owncloud.com> | 2015-02-25 17:20:26 +0100 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2015-02-25 20:54:40 +0100 |
commit | b63a6a4fc4bdd0df7118f6478768cc3c3e552668 (patch) | |
tree | 64697960da72ad60c8d9beb8ad561bb8b9e7f230 | |
parent | bc1418156339d4e61fe81bd1474f91555432ca00 (diff) | |
download | nextcloud-server-b63a6a4fc4bdd0df7118f6478768cc3c3e552668.tar.gz nextcloud-server-b63a6a4fc4bdd0df7118f6478768cc3c3e552668.zip |
Return null when requesting tags for null user
The TagManager->load() now returns null if the user is not authenticated
instead of failing with an error.
Backport of 9ee37169a6615e06c397e3b623ca55805aebcea3 from master
-rw-r--r-- | lib/private/tagmanager.php | 5 | ||||
-rw-r--r-- | tests/lib/tags.php | 10 |
2 files changed, 15 insertions, 0 deletions
diff --git a/lib/private/tagmanager.php b/lib/private/tagmanager.php index 6c7eeab87eb..c0ba56a2da8 100644 --- a/lib/private/tagmanager.php +++ b/lib/private/tagmanager.php @@ -76,6 +76,11 @@ class TagManager implements \OCP\ITagManager { */ public function load($type, $defaultTags = array(), $includeShared = false, $userId = null) { if (is_null($userId)) { + $user = $this->userSession->getUser(); + if ($user === null) { + // nothing we can do without a user + return null; + } $userId = $this->userSession->getUser()->getUId(); } return new Tags($this->mapper, $userId, $type, $defaultTags, $includeShared); diff --git a/tests/lib/tags.php b/tests/lib/tags.php index 547cd302d5d..a50855c88f3 100644 --- a/tests/lib/tags.php +++ b/tests/lib/tags.php @@ -62,6 +62,16 @@ class Test_Tags extends \Test\TestCase { parent::tearDown(); } + public function testTagManagerWithoutUserReturnsNull() { + $this->userSession = $this->getMock('\OCP\IUserSession'); + $this->userSession + ->expects($this->any()) + ->method('getUser') + ->will($this->returnValue(null)); + $this->tagMgr = new OC\TagManager($this->tagMapper, $this->userSession); + $this->assertNull($this->tagMgr->load($this->objectType)); + } + public function testInstantiateWithDefaults() { $defaultTags = array('Friends', 'Family', 'Work', 'Other'); |