summaryrefslogtreecommitdiffstats
path: root/inc
diff options
context:
space:
mode:
authorRobin Appelman <icewind1991@gmail.com>2010-06-22 01:27:44 +0200
committerRobin Appelman <icewind1991@gmail.com>2010-06-22 01:27:44 +0200
commite4a83b68e905347330f8c997c8f72daefadb031e (patch)
tree234f16d51b79bd4e988747377c3a49a6ee2a175a /inc
parenta9fd0c67b44ea56f1941b49ec5453f6bf82d9f19 (diff)
downloadnextcloud-server-e4a83b68e905347330f8c997c8f72daefadb031e.tar.gz
nextcloud-server-e4a83b68e905347330f8c997c8f72daefadb031e.zip
Cache user and group id's to save some queries
Diffstat (limited to 'inc')
-rwxr-xr-xinc/lib_user.php19
1 files changed, 19 insertions, 0 deletions
diff --git a/inc/lib_user.php b/inc/lib_user.php
index 99909a33213..089d0cb54a1 100755
--- a/inc/lib_user.php
+++ b/inc/lib_user.php
@@ -27,6 +27,14 @@ if(!$CONFIG_INSTALLED){
$_SESSION['username_clean']='';
}
+//cache the userid's an groupid's
+if(!isset($_SESSION['user_id_cache'])){
+ $_SESSION['user_id_cache']=array();
+}
+if(!isset($_SESSION['group_id_cache'])){
+ $_SESSION['group_id_cache']=array();
+}
+
/**
* Class for usermanagement
*
@@ -132,6 +140,9 @@ class OC_USER {
*/
public static function getuserid($username){
$usernameclean=strtolower($username);
+ if(isset($_SESSION['user_id_cache'][$usernameclean])){//try to use cached value to save an sql query
+ return $_SESSION['user_id_cache'][$usernameclean];
+ }
$usernameclean=OC_DB::escape($usernameclean);
$query="SELECT user_id FROM users WHERE user_name_clean = '$usernameclean'";
$result=OC_DB::select($query);
@@ -139,6 +150,7 @@ class OC_USER {
return 0;
}
if(isset($result[0]) && isset($result[0]['user_id'])){
+ $_SESSION['user_id_cache'][$usernameclean]=$result[0]['user_id'];
return $result[0]['user_id'];
}else{
return 0;
@@ -150,6 +162,9 @@ class OC_USER {
*
*/
public static function getgroupid($groupname){
+ if(isset($_SESSION['group_id_cache'][$groupname])){//try to use cached value to save an sql query
+ return $_SESSION['group_id_cache'][$groupname];
+ }
$groupname=OC_DB::escape($groupname);
$query="SELECT group_id FROM groups WHERE group_name = '$groupname'";
$result=OC_DB::select($query);
@@ -157,6 +172,7 @@ class OC_USER {
return 0;
}
if(isset($result[0]) && isset($result[0]['group_id'])){
+ $_SESSION['group_id_cache'][$groupname]=$result[0]['group_id'];
return $result[0]['group_id'];
}else{
return 0;
@@ -168,6 +184,9 @@ class OC_USER {
*
*/
public static function getgroupname($groupid){
+ if($name=array_search($groupid,$_SESSION['group_id_cache'])){//try to use cached value to save an sql query
+ return $name;
+ }
$groupid=(integer)$groupid;
$query="SELECT group_name FROM groups WHERE group_id = '$groupid' LIMIT 1";
$result=OC_DB::select($query);