summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2015-02-25 17:20:26 +0100
committerVincent Petry <pvince81@owncloud.com>2015-02-25 20:54:40 +0100
commitb63a6a4fc4bdd0df7118f6478768cc3c3e552668 (patch)
tree64697960da72ad60c8d9beb8ad561bb8b9e7f230
parentbc1418156339d4e61fe81bd1474f91555432ca00 (diff)
downloadnextcloud-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.php5
-rw-r--r--tests/lib/tags.php10
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');