diff --git a/inc/auth/mysql.class.php b/inc/auth/mysql.class.php index cb789fc1261c56b5f3571f86b60919f64cebaed4..fb7f43d802c2686431a6b70fcb8b88ea1b6041ce 100644 --- a/inc/auth/mysql.class.php +++ b/inc/auth/mysql.class.php @@ -53,14 +53,12 @@ class auth_mysql extends auth_basic { * @return bool */ function canDo($fn) { + $wop = false; /* function is write operation */ + /* general database configuration set? */ if (empty($this->cnf['server']) || empty($this->cnf['user']) || empty($this->cnf['password']) || empty($this->cnf['database'])) return false; - - /* lock array filled with tables names? */ - if (!is_array($this->cnf['TablesToLock']) || empty($this->cnf['TablesToLock'])) - return false; switch($fn) { case 'checkPass': @@ -72,14 +70,17 @@ class auth_mysql extends auth_basic { case 'createUser': $config = array('getUserInfo','getGroups','addUser', 'getUserID','addGroup','addUserGroup','delGroup'); + $wop = true; break; case 'modifyUser': $config = array('getUserID','updateUser','UpdateTarget', 'getGroups','getGroupID','addGroup','addUserGroup', 'delGroup','getGroupID','delUserGroup'); + $wop = true; break; case 'deleteUsers': $config = array('getUserID','delUser','delUserRefs'); + $wop = true; break; case 'getUserCount': $config = array('getUsers'); @@ -90,14 +91,20 @@ class auth_mysql extends auth_basic { case 'joinGroup': $config = array('getUserID','getGroupID','addGroup', 'addUserGroup','delGroup'); + $wop = true; break; case 'leaveGroup': $config = array('getUserID','getGroupID','delUserGroup'); + $wop = true; break; default: return false; /* unknown function call */ } + /* write operation and lock array filled with tables names? */ + if ($wop && (!is_array($this->cnf['TablesToLock']) || empty($this->cnf['TablesToLock']))) + return false; + foreach ($config as $statement) if (empty($this->cnf[$statement])) return false; /* required statement not set */