fix privacy protection issue when fetching tags of several users
This commit is contained in:
parent
3f57237b88
commit
30f84b3ca3
2 changed files with 50 additions and 21 deletions
|
@ -565,7 +565,7 @@ class SemanticScuttle_Service_Bookmark2Tag extends SemanticScuttle_DbService
|
|||
$query .= ' OR B.uId = ' . $this->db->sql_escape($u)
|
||||
. ' AND B.bId = T.bId';
|
||||
}
|
||||
$query .= ' )';
|
||||
$query .= ' )' . $privacy;
|
||||
} else {
|
||||
$query .= ' B.uId = ' . $this->db->sql_escape($user)
|
||||
. ' AND B.bId = T.bId' . $privacy;
|
||||
|
|
|
@ -37,6 +37,26 @@ class Bookmark2TagTest extends TestBase
|
|||
protected $tts;
|
||||
|
||||
|
||||
/**
|
||||
* Create a bookmark. Like addBookmark(), just with other paramter order
|
||||
* to make some tests in that class easier to write.
|
||||
*
|
||||
* @param integer $user User ID the bookmark shall belong
|
||||
* @param array $tags Array of tags to attach. If "null" is given,
|
||||
* it will automatically be "unittest"
|
||||
* @param string $date strtotime-compatible string
|
||||
* @param string $title Bookmark title
|
||||
*
|
||||
* @return integer ID of bookmark
|
||||
*/
|
||||
protected function addTagBookmark($user, $tags, $date = null, $title = null)
|
||||
{
|
||||
return $this->addBookmark(
|
||||
$user, null, 0, $tags, $title, $date
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Used to run this test class standalone
|
||||
|
@ -207,25 +227,6 @@ class Bookmark2TagTest extends TestBase
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Create a bookmark
|
||||
*
|
||||
* @param integer $user User ID the bookmark shall belong
|
||||
* @param array $tags Array of tags to attach. If "null" is given,
|
||||
* it will automatically be "unittest"
|
||||
* @param string $date strtotime-compatible string
|
||||
* @param string $title Bookmark title
|
||||
*
|
||||
* @return integer ID of bookmark
|
||||
*/
|
||||
protected function addTagBookmark($user, $tags, $date = null, $title = null)
|
||||
{
|
||||
return $this->addBookmark(
|
||||
$user, null, 0, $tags, $title, $date
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Fetch the most popular tags in descending order
|
||||
|
@ -398,10 +399,12 @@ class Bookmark2TagTest extends TestBase
|
|||
$this->assertContains(array('tag' => 'thr', 'bCount' => '1'), $arTags);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @covers SemanticScuttle_Service_Bookmark2Tag::getPopularTags
|
||||
*/
|
||||
public function testGetPopularTagsPublicOnly()
|
||||
public function testGetPopularTagsPublicOnlyNoUser()
|
||||
{
|
||||
$user1 = $this->addUser();
|
||||
$this->addBookmark($user1, null, 0, array('one'));
|
||||
|
@ -416,7 +419,13 @@ class Bookmark2TagTest extends TestBase
|
|||
),
|
||||
$arTags
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers SemanticScuttle_Service_Bookmark2Tag::getPopularTags
|
||||
*/
|
||||
public function testGetPopularTagsPublicOnlySingleUser()
|
||||
{
|
||||
$user1 = $this->addUser();
|
||||
$this->addBookmark($user1, null, 0, array('one'));
|
||||
$this->addBookmark($user1, null, 1, array('one', 'two'));
|
||||
|
@ -432,6 +441,26 @@ class Bookmark2TagTest extends TestBase
|
|||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers SemanticScuttle_Service_Bookmark2Tag::getPopularTags
|
||||
*/
|
||||
public function testGetPopularTagsPublicOnlySeveralUsers()
|
||||
{
|
||||
$user1 = $this->addUser();
|
||||
$user2 = $this->addUser();
|
||||
$this->addBookmark($user1, null, 0, array('one'));
|
||||
$this->addBookmark($user1, null, 1, array('one', 'two'));
|
||||
$this->addBookmark($user1, null, 2, array('thr'));
|
||||
$this->addBookmark($user2, null, 0, array('fou'));
|
||||
$this->addBookmark($user2, null, 1, array('fiv'));
|
||||
$this->addBookmark($user2, null, 2, array('six'));
|
||||
|
||||
$arTags = $this->b2ts->getPopularTags(array($user1, $user2));
|
||||
$this->assertEquals(2, count($arTags));
|
||||
$this->assertContains(array('tag' => 'one', 'bCount' => '1'), $arTags);
|
||||
$this->assertContains(array('tag' => 'fou', 'bCount' => '1'), $arTags);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers SemanticScuttle_Service_Bookmark2Tag::getPopularTags
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue