usernameInUse($username)) return false; /* if there exist no users already, make this new one an admin */ if (count($this->getAllUsers_orderByName()) == 0) $this->admin = 1; $this->perms = 0; $this->name = $username; $this->type = "user"; $this->setPassword($password); $this->setEmail(""); $this->saveObj(); $this->owner = $this->guid; $this->saveObj(); return true; } /* * Validate the password for this user. Returns true if correct, false otherwise */ function validatePassword($password) { $key = $this->getKey($password, $this->salt); return $key == $this->key; } /* * Validate the email confirmation key for a user, returns true if correct, false otherwise. On success, $this->emailConf is also set to 1 */ function confirmEmailKey($key) { if ($key != $this->emailConfKey) return false; $this->emailConf = 1; return true; } /* * Overwrite the salt and key for this user, given a new plaintext password */ function setPassword($password) { $this->salt = $this->getBlob(); $this->key = $this->getKey($password, $this->salt); } /* * Overwrite the emailConfKey and flag, and change user's saved email address */ function setEmail($email) { $this->email = $email; $this->emailConf = 0; $this->emailConfKey = $this->getBlob(); } /* * If a user has an alias set, display it instead of their username */ function getDisplayName() { if ($this->alias != "") return $this->alias; return $this->name; } /* * Get the glyphicon to use for this user */ function getGlyphicon() { if ($this->admin) return "glyphicon glyphicon-sunglasses"; return "glyphicon glyphicon-user"; } /* * Get all groups this user owns or is a member of */ function getGroups() { /* owner */ $query = "SELECT guid FROM object WHERE type = 'group' AND owner = '" . $this->db->esc($this->guid) . "'"; $result = $this->db->query($query); $groups = array(); foreach ($result as $g) $groups[] = new Group($g['guid']); /* member */ $query = "SELECT o.guid FROM object o JOIN obj_member om ON o.guid = om.guid WHERE o.type = 'group' AND member = '" . $this->db->esc($this->guid) . "'"; $result = $this->db->query($query); foreach ($result as $g) $groups[] = new Group($g['guid']); return $groups; } } ?>