Description : History : - 25/3/9 inital version */ /* Library of functions relevant to users table */ /* Check user */ function checkuser($db, $login, $pass) { global $debug; /* Check not null login and password */ if ((!$login) || (!$pass)) return -1; /* Check valid login */ $res = dbquery ($db, "select uid from users where login='" . str_replace("'", "''", $login) . "' collate latin1_bin and password=password('" . str_replace("'", "''", $pass) . "')"); debugger (($debug > 2), "checkuser receives from dbquery $res"); list ($uid) = dbfetch ($res); debugger (($debug > 2), "checkuser receives from dbfetch $uid"); if (!isset ($uid)) $uid = -2; return $uid; } /* Get all user ids */ function getallusers($db) { $res = dbquery($db, "select uid from users order by login, fullname asc"); $uids = array(); while (list($uid) = dbfetch($res)) $uids[] = $uid; return $uids; } /* Get user login */ function getuserlogin($db, $uid) { if ($uid < 0) return; $res = dbquery($db, "select login from users where uid='$uid'"); list($login) = dbfetch($res); return $login; } /* Get user full name */ function getuserfullname($db, $uid) { if ($uid < 0) return; $res = dbquery($db, "select fullname from users where uid='$uid'"); list($fullname) = dbfetch($res); return $fullname; } /* Add user */ function adduser($db, $login, $pass, $fullname = "", $grouplist = array()) { /* Check valid login */ if ((!$login) || (!$pass)) return 0; /* Check unique login */ $res = dbquery($db, "select uid from users where login='".str_replace("'", "''", $login)."' collate latin1_bin"); list($uid) = dbfetch($res); if ($uid) return -$uid; /* Create user */ $res = dbquery($db, "insert into users set login='".str_replace("'", "''", $login)."', password=password('".str_replace("'", "''", $pass)."'), fullname='".str_replace("'", "''", $fullname)."'"); /* Get user id */ $res = dbquery($db, "select uid from users where login='".str_replace("'", "''", $login)."'"); list($uid) = dbfetch($res); if (!$uid) return 0; /* Return UID */ return $uid; } /* Modify user */ function modifyuser($db, $uid, $login, $pass, $fullname = "", $grouplist = 0) { /* Check if user exist */ $res = dbquery($db, "select uid, login, fullname from users where uid='$uid'"); list($_uid, $_login, $_fullname) = dbfetch($res); if ($_uid != $uid) return 0; /* Check what have to be update */ $ftbu = array(); if (($login) && ($login != $_login)) $ftbu[] = "login='".str_replace("'", "''", $login)."'"; if (($fullname) && ($fullname != $_fullname)) $ftbu[] = "fullname='".str_replace("'", "''", $fullname)."'"; if ($pass) $ftbu[] = "password=password('".str_replace("'", "''", $pass)."')"; /* Update user profile */ $fields = ""; foreach ($ftbu as $f) if ($fields) $fields = "$fields, $f"; else $fields = $f; if ($fields) $res = dbquery($db, "update users set $fields where uid='$uid'"); /* Check if something has been modified */ if (count($ftbu) == 0) return -1; return 1; } /* Remove user */ function removeuser($db, $uid) { $res = dbquery($db, "select uid from users where uid='$uid'"); list($_uid) = dbfetch($res); if ($_uid != $uid) return false; $res = dbquery($db, "delete from users where uid='$uid'"); return true; }