return $userValues;
}
+ /**
+ * Gets the users for a preference
+ * @param string $app
+ * @param string $key
+ * @param string $value
+ * @return array
+ */
+ public function getUsersForValue($app, $key, $value) {
+ $users = array();
+
+ $query = 'SELECT `userid` '
+ . ' FROM `*PREFIX*preferences` '
+ . ' WHERE `appid` = ? AND `configkey` = ? AND `configvalue` = ?';
+ $result = $this->conn->executeQuery($query, array($app, $key, $value));
+
+ while ($row = $result->fetch()) {
+ $users[] = $row['userid'];
+ }
+
+ return $users;
+ }
+
/**
* Deletes a key
* @param string $user user
$this->assertEquals('someothervalue', $values['AnotherUser']);
}
+ public function testGetValueUsers()
+ {
+ // Prepare data
+ $query = \OC_DB::prepare('INSERT INTO `*PREFIX*preferences` VALUES(?, ?, ?, ?)');
+ $query->execute(array('SomeUser', 'testGetUsersForValue', 'somekey', 'somevalue'));
+ $query->execute(array('AnotherUser', 'testGetUsersForValue', 'somekey', 'someothervalue'));
+ $query->execute(array('AUser', 'testGetUsersForValue', 'somekey', 'somevalue'));
+
+ $preferences = new OC\Preferences(\OC_DB::getConnection());
+ $this->assertEquals(array('SomeUser', 'AUser'), $preferences->getUsersForValue('testGetUsersForValue', 'somekey', 'somevalue'));
+
+ // Clean DB after the test
+ $query = \OC_DB::prepare('DELETE FROM `*PREFIX*preferences` WHERE `appid` = ?');
+ $query->execute(array('testGetUsersForValue'));
+ }
+
public function testDeleteKey()
{
$connectionMock = $this->getMock('\OC\DB\Connection', array(), array(), '', false);