diff options
author | Bart Visscher <bartv@thisnet.nl> | 2013-03-03 12:04:29 +0100 |
---|---|---|
committer | Bart Visscher <bartv@thisnet.nl> | 2013-09-19 18:13:06 +0200 |
commit | 445d34a2a90295c11ace24171c20a93991ebfa87 (patch) | |
tree | fb830ec0cba28fb024c5fabdbde725d400bb391e /lib | |
parent | 2e79aab0ce7ec9fa88ccbafd01e82574b93514f9 (diff) | |
download | nextcloud-server-445d34a2a90295c11ace24171c20a93991ebfa87.tar.gz nextcloud-server-445d34a2a90295c11ace24171c20a93991ebfa87.zip |
Convert OC_Preference to object interface
Diffstat (limited to 'lib')
-rw-r--r-- | lib/legacy/preferences.php | 137 | ||||
-rw-r--r-- | lib/preferences.php | 153 |
2 files changed, 218 insertions, 72 deletions
diff --git a/lib/legacy/preferences.php b/lib/legacy/preferences.php new file mode 100644 index 00000000000..8bfac849a4a --- /dev/null +++ b/lib/legacy/preferences.php @@ -0,0 +1,137 @@ +<?php +/** + * ownCloud + * + * @author Frank Karlitschek + * @author Jakob Sack + * @copyright 2012 Frank Karlitschek frank@owncloud.org + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + * + */ + +/** + * This class provides an easy way for storing user preferences. + */ +OC_Preferences::$object = new \OC\Preferences(OC_DB::getConnection()); +class OC_Preferences{ + public static $object; + /** + * @brief Get all users using the preferences + * @return array with 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(); + } + + /** + * @brief Get all apps of a user + * @param string $user user + * @return array 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 ); + } + + /** + * @brief Get the available keys for an app + * @param string $user user + * @param string $app the app we are looking for + * @return array with key names + * + * This function gets all keys of an app of an user. Please note that the + * values are not returned. + */ + public static function getKeys( $user, $app ) { + return self::$object->getKeys( $user, $app ); + } + + /** + * @brief Gets the preference + * @param string $user user + * @param string $app app + * @param string $key key + * @param string $default = null, default value if the key does not exist + * @return string the value or $default + * + * This function gets a value from the preferences table. If the key does + * not exist the default value will be returned + */ + public static function getValue( $user, $app, $key, $default = null ) { + return self::$object->getValue( $user, $app, $key, $default ); + } + + /** + * @brief sets a value in the preferences + * @param string $user user + * @param string $app app + * @param string $key key + * @param string $value value + * + * Adds a value to the preferences. If the key did not exist before, it + * will be added automagically. + */ + public static function setValue( $user, $app, $key, $value ) { + self::$object->setValue( $user, $app, $key, $value ); + } + + /** + * @brief Deletes a key + * @param string $user user + * @param string $app app + * @param string $key key + * + * Deletes a key. + */ + public function deleteKey( $user, $app, $key ) { + self::$object->deleteKey( $user, $app, $key ); + } + + /** + * @brief Remove app of user from preferences + * @param string $user user + * @param string $app app + * + * Removes all keys in preferences belonging to the app and the user. + */ + public static function deleteApp( $user, $app ) { + self::$object->deleteApp( $user, $app ); + } + + /** + * @brief Remove user from preferences + * @param string $user user + * + * Removes all keys in preferences belonging to the user. + */ + public static function deleteUser( $user ) { + self::$object->deleteUser( $user ); + } + + /** + * @brief Remove app from all users + * @param string $app app + * + * Removes all keys in preferences belonging to the app. + */ + public static function deleteAppFromAllUsers( $app ) { + self::$object->deleteAppFromAllUsers( $app ); + } +} diff --git a/lib/preferences.php b/lib/preferences.php index 11ca760830e..359d9a83589 100644 --- a/lib/preferences.php +++ b/lib/preferences.php @@ -34,10 +34,21 @@ * */ +namespace OC; + +use \OC\DB\Connection; + + /** * This class provides an easy way for storing user preferences. */ -class OC_Preferences{ +class Preferences { + protected $conn; + + public function __construct(Connection $conn) { + $this->conn = $conn; + } + /** * @brief Get all users using the preferences * @return array with user ids @@ -45,14 +56,13 @@ class OC_Preferences{ * This function returns a list of all users that have at least one entry * in the preferences table. */ - public static function getUsers() { - // No need for more comments - $query = OC_DB::prepare( 'SELECT DISTINCT( `userid` ) FROM `*PREFIX*preferences`' ); - $result = $query->execute(); + public function getUsers() { + $query = 'SELECT DISTINCT `userid` FROM `*PREFIX*preferences`'; + $result = $this->conn->executeQuery( $query ); $users = array(); - while( $row = $result->fetchRow()) { - $users[] = $row["userid"]; + while( $userid = $result->fetchColumn()) { + $users[] = $userid; } return $users; @@ -66,14 +76,13 @@ class OC_Preferences{ * 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 ) { - // No need for more comments - $query = OC_DB::prepare( 'SELECT DISTINCT( `appid` ) FROM `*PREFIX*preferences` WHERE `userid` = ?' ); - $result = $query->execute( array( $user )); + public function getApps( $user ) { + $query = 'SELECT DISTINCT `appid` FROM `*PREFIX*preferences` WHERE `userid` = ?'; + $result = $this->conn->executeQuery( $query, array( $user ) ); $apps = array(); - while( $row = $result->fetchRow()) { - $apps[] = $row["appid"]; + while( $appid = $result->fetchColumn()) { + $apps[] = $appid; } return $apps; @@ -88,14 +97,13 @@ class OC_Preferences{ * This function gets all keys of an app of an user. Please note that the * values are not returned. */ - public static function getKeys( $user, $app ) { - // No need for more comments - $query = OC_DB::prepare( 'SELECT `configkey` FROM `*PREFIX*preferences` WHERE `userid` = ? AND `appid` = ?' ); - $result = $query->execute( array( $user, $app )); + public function getKeys( $user, $app ) { + $query = 'SELECT `configkey` FROM `*PREFIX*preferences` WHERE `userid` = ? AND `appid` = ?'; + $result = $this->conn->executeQuery( $query, array( $user, $app )); $keys = array(); - while( $row = $result->fetchRow()) { - $keys[] = $row["configkey"]; + while( $key = $result->fetchColumn()) { + $keys[] = $key; } return $keys; @@ -112,16 +120,14 @@ class OC_Preferences{ * This function gets a value from the preferences table. If the key does * not exist the default value will be returned */ - public static function getValue( $user, $app, $key, $default = null ) { + public function getValue( $user, $app, $key, $default = null ) { // Try to fetch the value, return default if not exists. - $query = OC_DB::prepare( 'SELECT `configvalue` FROM `*PREFIX*preferences`' - .' WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?' ); - $result = $query->execute( array( $user, $app, $key )); - - $row = $result->fetchRow(); + $query = 'SELECT `configvalue` FROM `*PREFIX*preferences`' + .' WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?'; + $row = $this->conn->fetchAssoc( $query, array( $user, $app, $key )); if($row) { return $row["configvalue"]; - }else{ + } else { return $default; } } @@ -132,29 +138,36 @@ class OC_Preferences{ * @param string $app app * @param string $key key * @param string $value value - * @return bool * * Adds a value to the preferences. If the key did not exist before, it * will be added automagically. */ - public static function setValue( $user, $app, $key, $value ) { + public function setValue( $user, $app, $key, $value ) { // Check if the key does exist - $query = OC_DB::prepare( 'SELECT `configvalue` FROM `*PREFIX*preferences`' - .' WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?' ); - $values=$query->execute(array($user, $app, $key))->fetchAll(); - $exists=(count($values)>0); + $query = 'SELECT COUNT(*) FROM `*PREFIX*preferences`' + .' WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?'; + $count = $this->conn->fetchColumn( $query, array( $user, $app, $key )); + $exists = $count > 0; if( !$exists ) { - $query = OC_DB::prepare( 'INSERT INTO `*PREFIX*preferences`' - .' ( `userid`, `appid`, `configkey`, `configvalue` ) VALUES( ?, ?, ?, ? )' ); - $query->execute( array( $user, $app, $key, $value )); + $data = array( + 'userid' => $user, + 'appid' => $app, + 'configkey' => $key, + 'configvalue' => $value, + ); + $this->conn->insert('*PREFIX*preferences', $data); + } else { + $data = array( + 'configvalue' => $value, + ); + $where = array( + 'userid' => $user, + 'appid' => $app, + 'configkey' => $key, + ); + $this->conn->update('*PREFIX*preferences', $data, $where); } - else{ - $query = OC_DB::prepare( 'UPDATE `*PREFIX*preferences` SET `configvalue` = ?' - .' WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?' ); - $query->execute( array( $value, $user, $app, $key )); - } - return true; } /** @@ -162,62 +175,58 @@ class OC_Preferences{ * @param string $user user * @param string $app app * @param string $key key - * @return bool * * Deletes a key. */ - public static function deleteKey( $user, $app, $key ) { - // No need for more comments - $query = OC_DB::prepare( 'DELETE FROM `*PREFIX*preferences`' - .' WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?' ); - $query->execute( array( $user, $app, $key )); - - return true; + public function deleteKey( $user, $app, $key ) { + $where = array( + 'userid' => $user, + 'appid' => $app, + 'configkey' => $key, + ); + $this->conn->delete('*PREFIX*preferences', $where); } /** * @brief Remove app of user from preferences * @param string $user user * @param string $app app - * @return bool * - * Removes all keys in appconfig belonging to the app and the user. + * Removes all keys in preferences belonging to the app and the user. */ - public static function deleteApp( $user, $app ) { - // No need for more comments - $query = OC_DB::prepare( 'DELETE FROM `*PREFIX*preferences` WHERE `userid` = ? AND `appid` = ?' ); - $query->execute( array( $user, $app )); - - return true; + public function deleteApp( $user, $app ) { + $where = array( + 'userid' => $user, + 'appid' => $app, + ); + $this->conn->delete('*PREFIX*preferences', $where); } /** * @brief Remove user from preferences * @param string $user user - * @return bool * - * Removes all keys in appconfig belonging to the user. + * Removes all keys in preferences belonging to the user. */ - public static function deleteUser( $user ) { - // No need for more comments - $query = OC_DB::prepare( 'DELETE FROM `*PREFIX*preferences` WHERE `userid` = ?' ); - $query->execute( array( $user )); - - return true; + public function deleteUser( $user ) { + $where = array( + 'userid' => $user, + ); + $this->conn->delete('*PREFIX*preferences', $where); } /** * @brief Remove app from all users * @param string $app app - * @return bool * * Removes all keys in preferences belonging to the app. */ - public static function deleteAppFromAllUsers( $app ) { - // No need for more comments - $query = OC_DB::prepare( 'DELETE FROM `*PREFIX*preferences` WHERE `appid` = ?' ); - $query->execute( array( $app )); - - return true; + public function deleteAppFromAllUsers( $app ) { + $where = array( + 'appid' => $app, + ); + $this->conn->delete('*PREFIX*preferences', $where); } } + +require_once __DIR__.'/legacy/'.basename(__FILE__); |