*/
class OC_Preferences{
public static $object;
+ /**
+ * Get all users using the preferences
+ * @return array an array of user ids
+ *
+ * This function returns a list of all users that have at least one entry
+ * in the preferences table.
+ */
+ public static function getUsers() {
+ return self::$object->getUsers();
+ }
+
+ /**
+ * Get all apps of a user
+ * @param string $user user
+ * @return integer[] with app ids
+ *
+ * This function returns a list of all apps of the user that have at least
+ * one entry in the preferences table.
+ */
+ public static function getApps( $user ) {
+ return self::$object->getApps( $user );
+ }
/**
* Get the available keys for an app
$this->conn = $conn;
}
+ /**
+ * Get all users using the preferences
+ * @return array an array of user ids
+ *
+ * This function returns a list of all users that have at least one entry
+ * in the preferences table.
+ */
+ public function getUsers() {
+ $query = 'SELECT DISTINCT `userid` FROM `*PREFIX*preferences`';
+ $result = $this->conn->executeQuery($query);
+
+ $users = array();
+ while ($userid = $result->fetchColumn()) {
+ $users[] = $userid;
+ }
+
+ return $users;
+ }
+
/**
* @param string $user
* @return array[]
return $data;
}
+ /**
+ * Get all apps of an user
+ * @param string $user user
+ * @return integer[] with app ids
+ *
+ * This function returns a list of all apps of the user that have at least
+ * one entry in the preferences table.
+ */
+ public function getApps($user) {
+ $data = $this->getUserValues($user);
+ return array_keys($data);
+ }
+
/**
* Get the available keys for an app
* @param string $user user
parent::tearDownAfterClass();
}
+ public function testGetUsers() {
+ $query = \OC_DB::prepare('SELECT DISTINCT `userid` FROM `*PREFIX*preferences`');
+ $result = $query->execute();
+ $expected = array();
+ while ($row = $result->fetchRow()) {
+ $expected[] = $row['userid'];
+ }
+
+ sort($expected);
+ $users = \OC_Preferences::getUsers();
+ sort($users);
+ $this->assertEquals($expected, $users);
+ }
+
+ public function testGetApps() {
+ $query = \OC_DB::prepare('SELECT DISTINCT `appid` FROM `*PREFIX*preferences` WHERE `userid` = ?');
+ $result = $query->execute(array('Someuser'));
+ $expected = array();
+ while ($row = $result->fetchRow()) {
+ $expected[] = $row['appid'];
+ }
+
+ sort($expected);
+ $apps = \OC_Preferences::getApps('Someuser');
+ sort($apps);
+ $this->assertEquals($expected, $apps);
+ }
+
public function testGetKeys() {
$query = \OC_DB::prepare('SELECT DISTINCT `configkey` FROM `*PREFIX*preferences` WHERE `userid` = ? AND `appid` = ?');
$result = $query->execute(array('Someuser', 'getkeysapp'));