diff options
author | Christopher Smith <chris@jalakai.co.uk> | 2014-03-12 15:38:28 +0000 |
---|---|---|
committer | Christopher Smith <chris@jalakai.co.uk> | 2014-03-12 17:47:43 +0000 |
commit | 2046a6546c8ed62b9a7b33305b6201458f2f8291 (patch) | |
tree | 47fda0d8608fd1c96d9db755feef8a0d8dc9b4f8 /lib/plugins/authpgsql | |
parent | d397e6da631cb6d262ad14ec7b46b75d1b60fbcf (diff) | |
download | rpg-2046a6546c8ed62b9a7b33305b6201458f2f8291.tar.gz rpg-2046a6546c8ed62b9a7b33305b6201458f2f8291.tar.bz2 |
Allow user info to be retrieved without groups
Some parts of dokuwiki (e.g. recent changes, old revisions) can
requests lots of user info (to provide editor names) without
requiring any group information.
This change also implements caching of user info by authmysql &
authpgsql plugins to avoid repeated querying of the DB to retrieve
the same user information.
Diffstat (limited to 'lib/plugins/authpgsql')
-rw-r--r-- | lib/plugins/authpgsql/auth.php | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/plugins/authpgsql/auth.php b/lib/plugins/authpgsql/auth.php index e51b39858..99f3ed443 100644 --- a/lib/plugins/authpgsql/auth.php +++ b/lib/plugins/authpgsql/auth.php @@ -160,7 +160,7 @@ class auth_plugin_authpgsql extends auth_plugin_authmysql { $result = $this->_queryDB($sql); foreach($result as $user) - if(($info = $this->_getUserInfo($user['user']))) + if(($info = $this->_getCachedUserInfo($user['user']))) $out[$user['user']] = $info; $this->_unlockTables(); @@ -212,7 +212,10 @@ class auth_plugin_authpgsql extends auth_plugin_authmysql { $sql = str_replace('%{user}', addslashes($user), $sql); $sql = str_replace('%{gid}', addslashes($gid), $sql); $sql = str_replace('%{group}', addslashes($group), $sql); - if($this->_modifyDB($sql) !== false) return true; + if($this->_modifyDB($sql) !== false) { + $this->_flushUserInfoCache($user); + return true; + } if($newgroup) { // remove previously created group on error $sql = str_replace('%{gid}', addslashes($gid), $this->conf['delGroup']); @@ -267,6 +270,7 @@ class auth_plugin_authpgsql extends auth_plugin_authmysql { } if($gid !== false){ + $this->_flushUserInfoCache($user); return true; } else { /* remove the new user and all group relations if a group can't |