password == sha1(md5($password));
}
public function write($fp)
{
fwrite($fp, " enabled . "\"\n");
fwrite($fp, " uid=\"" . $this->uid . "\"\n");
fwrite($fp, " gid=\"" . $this->gid . "\"\n");
fwrite($fp, " notified=\"" . $this->notified . "\"\n");
fwrite($fp, " username=\"" . htmlspecialchars($this->username, ENT_QUOTES, "UTF-8") . "\"\n");
fwrite($fp, " password=\"" . $this->password . "\"\n");
fwrite($fp, " name=\"" . htmlspecialchars($this->name, ENT_QUOTES, "UTF-8") . "\"\n");
fwrite($fp, " avatar=\"" . htmlspecialchars($this->avatar, ENT_QUOTES, "UTF-8") . "\"\n");
fwrite($fp, " email=\"" . htmlspecialchars($this->email, ENT_QUOTES, "UTF-8") . "\">");
fwrite($fp, htmlspecialchars($this->signature, ENT_QUOTES, "UTF-8"));
fwrite($fp, "\n");
}
public function User($enabled, $uid, $gid, $username, $password, $name, $email, $avatar, $signature, $notified)
{
$this->enabled = $enabled;
$this->gid = $gid;
$this->uid = $uid;
$this->username = $username;
$this->password = $password;
$this->email = $email;
$this->name = $name;
$this->avatar = $avatar;
$this->signature = $signature;
if($notified == "") $notified = 0;
$this->notified = $notified;
}
}
class Users {
private $file;
public $users = array();
public function add($user) {
$key = $user->uid;
$this->users[$key] = $user;
}
public function write()
{
$fp = fopen($this->file, "w");
$block = TRUE;
flock($fp, LOCK_EX, $block); // do an exclusive lock
fwrite($fp, "\n");
fwrite($fp, "\n");
foreach($this->users as $user) {
$user->write($fp);
}
fwrite($fp, "\n");
fclose($fp);
}
/*
public function deleteForumUser($id)
{
if($this->members[$id]) {
unset($this->members[$id]);
// $this->write();
} else {
echo "
ERROR: User! ".$id." does not exist!
\n";
return false;
}
return true;
}
*/
public function getUserID($username)
{
foreach($this->users as $user) {
if($user->username == $username) return $user->uid;
}
return -1;
}
public function getUser($uid)
{
$user = $this->users[$uid];
return $user;
}
private function read()
{
$dom = new DomDocument;
$dom->preserveWhiteSpace = FALSE;
$dom->load($this->file);
$users = $dom->getElementsByTagName('user');
foreach ($users as $u) {
$user = new User($u->getAttribute('enabled'),
$u->getAttribute('uid'),
$u->getAttribute('gid'),
$u->getAttribute('username'),
$u->getAttribute('password'),
$u->getAttribute('name'),
$u->getAttribute('email'),
$u->getAttribute('avatar'),
$u->textContent,
$u->getAttribute('notified'));
$this->add($user);
}
}
public function Users($file)
{
$this->file = $file;
if(file_exists($file)) $this->read();
else {
// Create default users.xml file.
$user = new User(true, 0, 0, "admin", "8456c0209aaa9ca04730a3160caf6e5e6b5ea389", "Administrator", "", "", 0);
$this->add($user);
$this->write();
}
}
}
?>