summaryrefslogtreecommitdiffstats
path: root/lib/private/preferences.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/private/preferences.php')
-rw-r--r--lib/private/preferences.php30
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/private/preferences.php b/lib/private/preferences.php
index a4bfc650d08..0dc5b26810a 100644
--- a/lib/private/preferences.php
+++ b/lib/private/preferences.php
@@ -243,6 +243,36 @@ class Preferences {
}
/**
+ * 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 ';
+
+ if (\OC_Config::getValue( 'dbtype', 'sqlite' ) === 'oci') {
+ //FIXME oracle hack: need to explicitly cast CLOB to CHAR for comparison
+ $query .= ' to_char(`configvalue`)= ?';
+ } else {
+ $query .= ' `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
* @param string $app app