diff options
Diffstat (limited to 'lib/plugins/authpgsql/auth.php')
-rw-r--r-- | lib/plugins/authpgsql/auth.php | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/lib/plugins/authpgsql/auth.php b/lib/plugins/authpgsql/auth.php index 3f8ff3249..4cb280aae 100644 --- a/lib/plugins/authpgsql/auth.php +++ b/lib/plugins/authpgsql/auth.php @@ -104,7 +104,7 @@ class auth_plugin_authpgsql extends auth_plugin_authmysql { * * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net> * - * @param array $keys + * @param string[] $keys * @param bool $wop * @return bool */ @@ -148,18 +148,22 @@ class auth_plugin_authpgsql extends auth_plugin_authmysql { * @param array $filter array of field/pattern pairs * @return array userinfo (refer getUserData for internal userinfo details) */ - public function retrieveUsers($first = 0, $limit = 10, $filter = array()) { + public function retrieveUsers($first = 0, $limit = 0, $filter = array()) { $out = array(); if($this->_openDB()) { $this->_lockTables("READ"); $sql = $this->_createSQLFilter($this->conf['getUsers'], $filter); - $sql .= " ".$this->conf['SortOrder']." LIMIT $limit OFFSET $first"; + $sql .= " ".$this->conf['SortOrder']; + if($limit) $sql .= " LIMIT $limit"; + if($first) $sql .= " OFFSET $first"; $result = $this->_queryDB($sql); - foreach($result as $user) - if(($info = $this->_getUserInfo($user['user']))) + foreach($result as $user) { + if(($info = $this->_getUserInfo($user['user']))) { $out[$user['user']] = $info; + } + } $this->_unlockTables(); $this->_closeDB(); @@ -210,7 +214,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']); @@ -260,11 +267,12 @@ class auth_plugin_authpgsql extends auth_plugin_authmysql { if($uid) { foreach($grps as $group) { - $gid = $this->_addUserToGroup($user, $group, 1); + $gid = $this->_addUserToGroup($user, $group, true); if($gid === false) break; } if($gid !== false){ + $this->_flushUserInfoCache($user); return true; } else { /* remove the new user and all group relations if a group can't @@ -334,7 +342,7 @@ class auth_plugin_authpgsql extends auth_plugin_authmysql { * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net> * * @param string $query SQL string that contains the query - * @return array the result table + * @return array|false the result table */ protected function _queryDB($query) { $resultarray = array(); @@ -357,6 +365,9 @@ class auth_plugin_authpgsql extends auth_plugin_authmysql { * MySQL one because it does NOT return the last insertID * * @author Andreas Gohr <andi@splitbrain.org> + * + * @param string $query + * @return bool */ protected function _modifyDB($query) { if($this->dbcon) { @@ -390,6 +401,8 @@ class auth_plugin_authpgsql extends auth_plugin_authmysql { * Commit a transaction * * @author Matthias Grimm <matthiasgrimm@users.sourceforge.net> + * + * @return bool */ protected function _unlockTables() { if($this->dbcon) { |