public function update($userId, $userData) { if ($this->getId() !== $userId && $this->getClass() < self::CLASS_ADMIN) { throw new Exception('Du har inte rättigheter att redigera denna användaren.', 401); } $sth = $this->db->prepare('SELECT * FROM users WHERE id = ?'); $sth->bindParam(1, $userId, PDO::PARAM_INT); $sth->execute(); $user = $sth->fetch(PDO::FETCH_ASSOC); if (!$user) { throw new Exception('Användaren finns inte.', 404); } $changedPassword = false; if ($userData["password"] != "") { if ($userData["password"] != $userData["passwordRepeat"]) { throw new Exception('Nytt lösenord och upprepade lösenordet stämmmer inte.'); } if ($this->getClass() >= self::CLASS_ADMIN || $this->hashPassword($userData["previousPassword"], $user["added"]) == $user["passhash"]) { $userData["passhash"] = $this->hashPassword($userData["password"], $user["added"]); $changedPassword = true; } else { throw new Exception('Nuvarande lösenord är felaktigt.'); } } else { $userData["passhash"] = $user["passhash"]; } $userData["notifs"] = implode(",", $userData["notifs"]); $userData["warneduntil"] = $user["warneduntil"]; // Only uploaders and above can use user class mask feature if ($this->getClass() < User::CLASS_UPLOADER) { $userData["doljuploader"] = $user["doljuploader"]; } if ($this->getClass() >= User::CLASS_ADMIN) { $adminlogs = new AdminLogs($this->db, $this); $mailbox = new Mailbox($this->db); if ($user["enabled"] != $userData["enabled"]) { if ($userData["enabled"] == "yes") { $adminlogs->create("{{username}} aktiverade kontot [url=/user/" . $user["id"] . "/" . $user["username"] . "][b]" . $user["username"] . "[/b][/url]"); $userData["modcomment"] = $this->appendAdminComments($userData["modcomment"], 'Kontot aktiverat ' . $this->getUsername()); } else { $adminlogs->create("{{username}} inaktiverade kontot [url=/user/" . $user["id"] . "/" . $user["username"] . "][b]" . $user["username"] . "[/b][/url] med anledning: [i]" . $userData["secret"] . "[/i]"); $userData["modcomment"] = $this->appendAdminComments($userData["modcomment"], 'Kontot inaktiverat utav ' . $this->getUsername() . ' med anledning: ' . $userData["secret"]); } } if ($user["class"] != $userData["class"]) { if ($user["class"] < $userData["class"]) { $statusChange = "uppgraderad"; } else { $statusChange = "nedgraderad"; } $newClass = Helper::getUserClassById($userData["class"]); $oldClass = Helper::getUserClassById($user["class"]); $mailbox->sendSystemMessage($user["id"], ucfirst($statusChange) . " till " . $newClass . "!", "Du har blivit " . $statusChange . " till statusnivån [b]" . $newClass . "[/b] utav en administratör."); $userData["modcomment"] = $this->appendAdminComments($userData["modcomment"], ucfirst($statusChange) . ' från ' . $oldClass . ' till ' . $newClass . ' utav ' . $this->getUsername()); $adminlogs->create("{{username}} " . $statusChange . "e [url=/user/" . $user["id"] . "/" . $user["username"] . "][b]" . $user["username"] . "[/b][/url] från [b]" . $oldClass . "[/b] till [b]" . $newClass . "[/b]."); $userData["doljuploader"] = $userData["class"]; if ($userData["class"] >= self::CLASS_UPLOADER) { $this->db->query('DELETE FROM iplog WHERE userid = ' . $user["id"]); } } if ($user["passkey"] != $userData["passkey"]) { $userData["modcomment"] = $this->appendAdminComments($userData["modcomment"], 'Passkey förnyad utav ' . $this->getUsername()); } if ($user["warned"] != $userData["warned"]) { if ($userData["warned"] == "yes") { $days = max(1, $userData["warnDays"]); $userData["warneduntil"] = date("Y-m-d H:i:s", time() + 86400 * $days); $userData["modcomment"] = $this->appendAdminComments($userData["modcomment"], 'Varnad i ' . $days . ' dagar utav ' . $this->getUsername() . ' med anledning: ' . $userData["warnReason"]); $adminlogs->create("{{username}} varnade [url=/user/" . $user["id"] . "/" . $user["username"] . "][b]" . $user["username"] . "[/b][/url] i [b]" . $days . " dagar[/b] med anledning: [i]" . $userData["warnReason"] . "[/i]"); $mailbox->sendSystemMessage($user["id"], "Du är varnad!", "Du har mottagit en varning på [b]" . $days . " dagar[/b] utav en administratör.\n\nAnledning: [b]" . $userData["warnReason"] . "[/b]"); } else { $userData["warneduntil"] = "0000-00-00 00:00:00"; $userData["modcomment"] = $this->appendAdminComments($userData["modcomment"], 'Varning borttagen utav ' . $this->getUsername()); $adminlogs->create("{{username}} plockade bort varningen ifrån [url=/user/" . $user["id"] . "/" . $user["username"] . "][b]" . $user["username"] . "[/b][/url]"); $mailbox->sendSystemMessage($user["id"], "Varning borttagen", "Din varning har blivit borttagen utav en administratör."); } } if ($user["uploadban"] != $userData["uploadban"]) { if ($userData["uploadban"] == 1) { $adminlogs->create("{{username}} uploadbannade [url=/user/" . $user["id"] . "/" . $user["username"] . "][b]" . $user["username"] . "[/b][/url]"); $userData["modcomment"] = $this->appendAdminComments($userData["modcomment"], 'Uploadbannad utav ' . $this->getUsername()); } else { $adminlogs->create("{{username}} tog bort uploadban ifrån [url=/user/" . $user["id"] . "/" . $user["username"] . "][b]" . $user["username"] . "[/b][/url]"); $userData["modcomment"] = $this->appendAdminComments($userData["modcomment"], 'Uploadban borttagen utav ' . $this->getUsername()); } } if ($user["inviteban"] != $userData["inviteban"]) { if ($userData["inviteban"] == 1) { $adminlogs->create("{{username}} invitebannade [url=/user/" . $user["id"] . "/" . $user["username"] . "][b]" . $user["username"] . "[/b][/url]"); $userData["modcomment"] = $this->appendAdminComments($userData["modcomment"], 'Invitebannad utav ' . $this->getUsername()); } else { $adminlogs->create("{{username}} tog bort inviteban ifrån [url=/user/" . $user["id"] . "/" . $user["username"] . "][b]" . $user["username"] . "[/b][/url]"); $userData["modcomment"] = $this->appendAdminComments($userData["modcomment"], 'Inviteban borttagen utav ' . $this->getUsername()); } } if ($user["forumban"] != $userData["forumban"]) { if ($userData["forumban"] == 1) { $adminlogs->create("{{username}} forumbannade [url=/user/" . $user["id"] . "/" . $user["username"] . "][b]" . $user["username"] . "[/b][/url]"); $userData["modcomment"] = $this->appendAdminComments($userData["modcomment"], 'Forumbannad utav ' . $this->getUsername()); } else { $adminlogs->create("{{username}} tog bort forumban ifrån [url=/user/" . $user["id"] . "/" . $user["username"] . "][b]" . $user["username"] . "[/b][/url]"); $userData["modcomment"] = $this->appendAdminComments($userData["modcomment"], 'Forumban borttagen utav ' . $this->getUsername()); } } if ($user["email"] != $userData["email"]) { $userData["modcomment"] = $this->appendAdminComments($userData["modcomment"], "Emailbyte från " . $user["email"] . " till " . $userData["email"] . " av " . $this->getUsername()); $this->addEmailLog($user["id"], $user["email"]); } if ($user["username"] != $userData["username"]) { $adminlogs->create("{{username}} bytte nick på [url=/user/" . $user["id"] . "/" . $user["username"] . "][b]" . $user["username"] . "[/b][/url] till [url=/user/" . $user["id"] . "/" . $userData["username"] . "][b]" . $userData["username"] . "[/b][/url]"); $userData["modcomment"] = $this->appendAdminComments($userData["modcomment"], "Nickbyte från " . $user["username"] . " till " . $userData["username"] . " av " . $this->getUsername()); } } if ($this->getClass() >= User::CLASS_ADMIN) { $sth = $this->db->prepare("UPDATE users SET avatar = :avatar, gender = :gender, parkerad = :parkerad, alder = :alder, info = :info, mbitupp = :mbitupp, mbitner = :mbitner, isp = :isp, anonym = :anonym, anonymratio = :anonymratio, anonymicons = :anonymicons, acceptpms = :acceptpms, tvvy = :tvvy, https = :https, notifs = :notifs, avatars = :avatars, torrentsperpage = :torrentsperpage, topicsperpage = :topicsperpage, postsperpage = :postsperpage, visagammalt = :visagammalt, passhash = :passhash, design = :design, css = :css, search_sort = :search_sort, doljuploader = :doljuploader, leechstart = :leechstart, invites = :invites, reqslots = :reqslots, forumban = :forumban, inviteban = :inviteban, uploadban = :uploadban, passkey = :passkey, warneduntil = :warneduntil, warned = :warned, username = :username, enabled = :enabled, bonuspoang = :bonuspoang, donor = :donor, downloaded = :downloaded, uploaded = :uploaded, title = :title, modcomment = :modcomment, email = :email, secret = :secret, class = :class, invited_by = :invited_by WHERE id = :userId"); } else { $sth = $this->db->prepare("UPDATE users SET avatar = :avatar, gender = :gender, parkerad = :parkerad, alder = :alder, info = :info, mbitupp = :mbitupp, mbitner = :mbitner, isp = :isp, anonym = :anonym, anonymratio = :anonymratio, anonymicons = :anonymicons, acceptpms = :acceptpms, tvvy = :tvvy, https = :https, notifs = :notifs, avatars = :avatars, torrentsperpage = :torrentsperpage, topicsperpage = :topicsperpage, postsperpage = :postsperpage, visagammalt = :visagammalt, passhash = :passhash, design = :design, css = :css, search_sort = :search_sort, doljuploader = :doljuploader WHERE id = :userId"); } if ($this->getClass() >= User::CLASS_ADMIN) { $sth->bindParam(":leechstart", $userData["leechstart"], PDO::PARAM_STR); $sth->bindParam(":invites", $userData["invites"], PDO::PARAM_INT); $sth->bindParam(":reqslots", $userData["reqslots"], PDO::PARAM_INT); $sth->bindParam(":forumban", $userData["forumban"], PDO::PARAM_INT); $sth->bindParam(":inviteban", $userData["inviteban"], PDO::PARAM_INT); $sth->bindParam(":uploadban", $userData["uploadban"], PDO::PARAM_INT); $sth->bindParam(":passkey", $userData["passkey"], PDO::PARAM_STR); $sth->bindParam(":warned", $userData["warned"], PDO::PARAM_STR); $sth->bindParam(":warneduntil", $userData["warned"], PDO::PARAM_STR); $sth->bindParam(":username", $userData["username"], PDO::PARAM_STR); $sth->bindParam(":enabled", $userData["enabled"], PDO::PARAM_STR); $sth->bindParam(":bonuspoang", $userData["bonuspoang"], PDO::PARAM_INT); $sth->bindParam(":donor", $userData["donor"], PDO::PARAM_STR); $sth->bindParam(":downloaded", $userData["downloaded"], PDO::PARAM_INT); $sth->bindParam(":uploaded", $userData["uploaded"], PDO::PARAM_INT); $sth->bindParam(":title", $userData["title"], PDO::PARAM_STR); $sth->bindParam(":modcomment", $userData["modcomment"], PDO::PARAM_STR); $sth->bindParam(":email", $userData["email"], PDO::PARAM_STR); $sth->bindParam(":secret", $userData["secret"], PDO::PARAM_STR); $sth->bindParam(":class", $userData["class"], PDO::PARAM_STR); $sth->bindParam(":invited_by", $userData["invited_by"], PDO::PARAM_INT); } $sth->bindParam(":avatar", $userData["avatar"], PDO::PARAM_STR); $sth->bindParam(":gender", $userData["gender"], PDO::PARAM_INT); $sth->bindParam(":parkerad", $userData["parkerad"], PDO::PARAM_INT); $sth->bindParam(":alder", $userData["alder"], PDO::PARAM_INT); $sth->bindParam(":info", $userData["info"], PDO::PARAM_STR); $sth->bindParam(":mbitupp", $userData["mbitupp"], PDO::PARAM_STR); $sth->bindParam(":mbitner", $userData["mbitner"], PDO::PARAM_STR); $sth->bindParam(":isp", $userData["isp"], PDO::PARAM_STR); $sth->bindParam(":anonym", $userData["anonym"], PDO::PARAM_STR); $sth->bindParam(":anonymratio", $userData["anonymratio"], PDO::PARAM_STR); $sth->bindParam(":anonymicons", $userData["anonymicons"], PDO::PARAM_STR); $sth->bindParam(":acceptpms", $userData["acceptpms"], PDO::PARAM_STR); $sth->bindParam(":tvvy", $userData["tvvy"], PDO::PARAM_INT); $sth->bindParam(":https", $userData["https"], PDO::PARAM_INT); $sth->bindParam(":notifs", $userData["notifs"], PDO::PARAM_STR); $sth->bindParam(":avatars", $userData["avatars"], PDO::PARAM_STR); $sth->bindParam(":torrentsperpage", $userData["torrentsperpage"], PDO::PARAM_INT); $sth->bindParam(":topicsperpage", $userData["topicsperpage"], PDO::PARAM_INT); $sth->bindParam(":postsperpage", $userData["postsperpage"], PDO::PARAM_INT); $sth->bindParam(":visagammalt", $userData["visagammalt"], PDO::PARAM_INT); $sth->bindParam(":passhash", $userData["passhash"], PDO::PARAM_STR); $sth->bindParam(":design", $userData["design"], PDO::PARAM_INT); $sth->bindParam(":css", $userData["css"], PDO::PARAM_STR); $sth->bindParam(":search_sort", $userData["search_sort"], PDO::PARAM_STR); $sth->bindParam(":doljuploader", $userData["doljuploader"], PDO::PARAM_INT); $sth->bindParam(":userId", $userId, PDO::PARAM_INT); $sth->execute(); if ($changedPassword && $this->getId() == $userId) { $this->login($user["username"], $userData["password"], $_COOKIE["notuseip"] == "true"); } }
public function update($userId, $userData) { if ($this->getId() !== $userId && $this->getClass() < self::CLASS_ADMIN) { throw new Exception(L::get("PERMISSION_DENIED"), 401); } $sth = $this->db->prepare('SELECT * FROM users WHERE id = ?'); $sth->bindParam(1, $userId, PDO::PARAM_INT); $sth->execute(); $user = $sth->fetch(PDO::FETCH_ASSOC); if (!$user) { throw new Exception(L::get("USER_NOT_EXIST"), 404); } $changedPassword = false; if ($userData["password"] != "") { if ($userData["password"] != $userData["passwordRepeat"]) { throw new Exception(L::get("NEW_PASSWORD_NOT_MATCHING")); } if ($this->getClass() >= self::CLASS_ADMIN || password_verify($userData["previousPassword"] . User::PASSWORD_SALT, $user["passhash"])) { $userData["passhash"] = $this->hashPassword($userData["password"], $user["added"]); $changedPassword = true; } else { throw new Exception(L::get("CURRENT_PASSWORD_WRONG")); } } else { $userData["passhash"] = $user["passhash"]; } $userData["notifs"] = implode(",", $userData["notifs"]); $userData["warneduntil"] = $user["warneduntil"]; if (!in_array($userData["language"], Config::$languages)) { $userData["language"] = Config::DEFAULT_LANGUAGE; } // Only uploaders and above can use user class mask feature if ($this->getClass() < User::CLASS_UPLOADER) { $userData["doljuploader"] = $user["doljuploader"]; } if ($this->getClass() >= User::CLASS_ADMIN) { $adminlogs = new AdminLogs($this->db, $this); $mailbox = new Mailbox($this->db); if ($user["enabled"] != $userData["enabled"]) { if ($userData["enabled"] == "yes") { $adminlogs->create(L::get("ACCOUNT_ACTIVATED_ADMIN_LOG", [$user["id"], $user["username"], $user["username"]], Config::DEFAULT_LANGUAGE)); $userData["modcomment"] = $this->appendAdminComments($userData["modcomment"], L::get("ACCOUNT_ACTIVATED_LOG", [$this->getUsername()], Config::DEFAULT_LANGUAGE)); } else { $adminlogs->create(L::get("ACCOUNT_DEACTIVATED_ADMIN_LOG", [$user["id"], $user["username"], $user["username"], $userData["secret"]], Config::DEFAULT_LANGUAGE)); $userData["modcomment"] = $this->appendAdminComments($userData["modcomment"], L::get("ACCOUNT_DEACTIVATED_LOG", [$this->getUsername(), $userData["secret"]], Config::DEFAULT_LANGUAGE)); } } if ($user["class"] != $userData["class"]) { if ($user["class"] < $userData["class"]) { $statusChangeUser = L::get("STATUS_UPGRADED", null, $user["language"]); $statusChangeLog = L::get("STATUS_UPGRADED", null, Config::DEFAULT_LANGUAGE); $statusChangeTense = L::get("STATUS_WAS_UPGRADED", null, Config::DEFAULT_LANGUAGE); } else { $statusChangeUser = L::get("STATUS_DOWNGRADED", null, $user["language"]); $statusChangeLog = L::get("STATUS_DOWNGRADED", null, Config::DEFAULT_LANGUAGE); $statusChangeTense = L::get("STATUS_WAS_DOWNGRADED", null, Config::DEFAULT_LANGUAGE); } $newClass = Helper::getUserClassById($userData["class"]); $oldClass = Helper::getUserClassById($user["class"]); $mailbox->sendSystemMessage($user["id"], L::get("CLASS_CHANGED_SUBJECT", [ucfirst($statusChangeUser), $newClass], $user["language"]), L::get("CLASS_CHANGED_MESSAGE", [$statusChangeUser, $newClass], $user["language"])); $userData["modcomment"] = $this->appendAdminComments($userData["modcomment"], L::get("CLASS_CHANGED_COMMENT", [ucfirst($statusChangeLog), $oldClass, $newClass, $this->getUsername()], Config::DEFAULT_LANGUAGE)); $adminlogs->create(L::get("CLASS_CHANGED_ADMINLOG", [$statusChangeTense, $user["id"], $user["username"], $user["username"], $oldClass, $newClass], Config::DEFAULT_LANGUAGE)); $userData["doljuploader"] = $userData["class"]; if ($userData["class"] >= self::CLASS_MOVIE_STAR) { $this->db->query('DELETE FROM iplog WHERE userid = ' . $user["id"]); } } if ($user["passkey"] != $userData["passkey"]) { $userData["modcomment"] = $this->appendAdminComments($userData["modcomment"], L::get("PASSKEY_RENEWED", [$this->getUsername()], Config::DEFAULT_LANGUAGE)); } if ($user["warned"] != $userData["warned"]) { if ($userData["warned"] == "yes") { $days = max(1, $userData["warnDays"]); $userData["warneduntil"] = date("Y-m-d H:i:s", time() + 86400 * $days); $userData["modcomment"] = $this->appendAdminComments($userData["modcomment"], L::get("WARNED_USERLOG", [$days, $this->getUsername(), $userData["warnReason"]], Config::DEFAULT_LANGUAGE)); $adminlogs->create(L::get("WARNED_ADMINLOG", [$user["id"], $user["username"], $user["username"], $days, $userData["warnReason"]], Config::DEFAULT_LANGUAGE)); $mailbox->sendSystemMessage($user["id"], L::get("WARNED_PM_SUBJECT", null, $user["language"]), L::get("WARNED_PM_BODY", [$days, $userData["warnReason"]], $user["language"])); } else { $userData["warneduntil"] = "0000-00-00 00:00:00"; $userData["modcomment"] = $this->appendAdminComments($userData["modcomment"], L::get("WARNING_REMOVED_USERLOG", [$this->getUsername()])); $adminlogs->create(L::get("WARNING_REMOVED_ADMINLOG", [$user["id"], $user["username"], $user["username"]], Config::DEFAULT_LANGUAGE)); $mailbox->sendSystemMessage($user["id"], L::get("WARNING_REMOVED_PM_SUBJECT", null, $user["language"]), L::get("WARNING_REMOVED_PM_BODY", null, $user["language"])); } } if ($user["uploadban"] != $userData["uploadban"]) { if ($userData["uploadban"] == 1) { $adminlogs->create(L::get("UPLOADBAN_ADDED", [$user["id"], $user["username"], $user["username"]], Config::DEFAULT_LANGUAGE)); $userData["modcomment"] = $this->appendAdminComments($userData["modcomment"], L::get("UPLOADBAN_ADDED_LOG", [$this->getUsername()], Config::DEFAULT_LANGUAGE)); } else { $adminlogs->create(L::get("UPLOADBAN_REMOVED", [$user["id"], $user["username"], $user["username"]], Config::DEFAULT_LANGUAGE)); $userData["modcomment"] = $this->appendAdminComments($userData["modcomment"], L::get("UPLOADBAN_REMOVED_LOG", [$this->getUsername()], Config::DEFAULT_LANGUAGE)); } } if ($user["inviteban"] != $userData["inviteban"]) { if ($userData["inviteban"] == 1) { $adminlogs->create(L::get("INVITEBAN_ADDED", [$user["id"], $user["username"], $user["username"]], Config::DEFAULT_LANGUAGE)); $userData["modcomment"] = $this->appendAdminComments($userData["modcomment"], L::get("INVITEBAN_ADDED_LOG", [$this->getUsername()], Config::DEFAULT_LANGUAGE)); } else { $adminlogs->create(L::get("INVITEBAN_REMOVED", [$user["id"], $user["username"], $user["username"]], Config::DEFAULT_LANGUAGE)); $userData["modcomment"] = $this->appendAdminComments($userData["modcomment"], L::get("INVITEBAN_REMOVED_LOG", [$this->getUsername()], Config::DEFAULT_LANGUAGE)); } } if ($user["forumban"] != $userData["forumban"]) { if ($userData["forumban"] == 1) { $adminlogs->create(L::get("FORUMBAN_ADDED", [$user["id"], $user["username"], $user["username"]], Config::DEFAULT_LANGUAGE)); $userData["modcomment"] = $this->appendAdminComments($userData["modcomment"], L::get("FORUM_BANNED_BY", [$this->getUsername()], Config::DEFAULT_LANGUAGE)); } else { $adminlogs->create(L::get("FORUMBAN_REMOVED", [$user["id"], $user["username"], $user["username"]], Config::DEFAULT_LANGUAGE)); $userData["modcomment"] = $this->appendAdminComments($userData["modcomment"], L::get("FORUM_UNBANNED_BY", [$this->getUsername()], Config::DEFAULT_LANGUAGE)); } } if ($this->hashEmail($user["email"]) != $this->hashEmail($userData["email"])) { $userData["modcomment"] = $this->appendAdminComments($userData["modcomment"], L::get("EMAIL_CHANGE_LOG", [$this->hashEmail($user["email"]), $this->hashEmail($userData["email"]), $this->getUsername()], Config::DEFAULT_LANGUAGE)); $this->addEmailLog($user["id"], $this->hashEmail($user["email"])); } if ($user["username"] != $userData["username"]) { $adminlogs->create(L::get("USERNAME_CHANGE_LOG", [$user["id"], $user["username"], $user["username"], $user["id"], $userData["username"], $userData["username"]], Config::DEFAULT_LANGUAGE)); $userData["modcomment"] = $this->appendAdminComments($userData["modcomment"], L::get("USERNAME_CHANGE_ADMIN_LOG", [$user["username"], $userData["username"], $this->getUsername()], Config::DEFAULT_LANGUAGE)); } } if ($this->getClass() >= User::CLASS_ADMIN) { $sth = $this->db->prepare("UPDATE users SET avatar = :avatar, gender = :gender, parkerad = :parkerad, alder = :alder, info = :info, mbitupp = :mbitupp, mbitner = :mbitner, isp = :isp, anonym = :anonym, anonymratio = :anonymratio, anonymicons = :anonymicons, acceptpms = :acceptpms, tvvy = :tvvy, https = :https, notifs = :notifs, avatars = :avatars, torrentsperpage = :torrentsperpage, topicsperpage = :topicsperpage, postsperpage = :postsperpage, passhash = :passhash, design = :design, css = :css, search_sort = :search_sort, doljuploader = :doljuploader, leechstart = :leechstart, invites = :invites, reqslots = :reqslots, forumban = :forumban, inviteban = :inviteban, uploadban = :uploadban, passkey = :passkey, warneduntil = :warneduntil, warned = :warned, username = :username, enabled = :enabled, bonuspoang = :bonuspoang, donor = :donor, downloaded = :downloaded, uploaded = :uploaded, title = :title, modcomment = :modcomment, email = :email, secret = :secret, class = :class, invited_by = :invited_by, section = :section, p2p = :p2p, language = :language WHERE id = :userId"); } else { $sth = $this->db->prepare("UPDATE users SET avatar = :avatar, gender = :gender, parkerad = :parkerad, alder = :alder, info = :info, mbitupp = :mbitupp, mbitner = :mbitner, isp = :isp, anonym = :anonym, anonymratio = :anonymratio, anonymicons = :anonymicons, acceptpms = :acceptpms, tvvy = :tvvy, https = :https, notifs = :notifs, avatars = :avatars, torrentsperpage = :torrentsperpage, topicsperpage = :topicsperpage, postsperpage = :postsperpage, passhash = :passhash, design = :design, css = :css, search_sort = :search_sort, doljuploader = :doljuploader, section = :section, p2p = :p2p, language = :language WHERE id = :userId"); } if ($this->getClass() >= User::CLASS_ADMIN) { $sth->bindParam(":leechstart", $userData["leechstart"], PDO::PARAM_STR); $sth->bindParam(":invites", $userData["invites"], PDO::PARAM_INT); $sth->bindParam(":reqslots", $userData["reqslots"], PDO::PARAM_INT); $sth->bindParam(":forumban", $userData["forumban"], PDO::PARAM_INT); $sth->bindParam(":inviteban", $userData["inviteban"], PDO::PARAM_INT); $sth->bindParam(":uploadban", $userData["uploadban"], PDO::PARAM_INT); $sth->bindParam(":passkey", $userData["passkey"], PDO::PARAM_STR); $sth->bindParam(":warned", $userData["warned"], PDO::PARAM_STR); $sth->bindParam(":warneduntil", $userData["warned"], PDO::PARAM_STR); $sth->bindParam(":username", $userData["username"], PDO::PARAM_STR); $sth->bindParam(":enabled", $userData["enabled"], PDO::PARAM_STR); $sth->bindParam(":bonuspoang", $userData["bonuspoang"], PDO::PARAM_INT); $sth->bindParam(":donor", $userData["donor"], PDO::PARAM_STR); $sth->bindParam(":downloaded", $userData["downloaded"], PDO::PARAM_INT); $sth->bindParam(":uploaded", $userData["uploaded"], PDO::PARAM_INT); $sth->bindParam(":title", $userData["title"], PDO::PARAM_STR); $sth->bindParam(":modcomment", $userData["modcomment"], PDO::PARAM_STR); $sth->bindValue(":email", $this->hashEmail($userData["email"]), PDO::PARAM_STR); $sth->bindParam(":secret", $userData["secret"], PDO::PARAM_STR); $sth->bindParam(":class", $userData["class"], PDO::PARAM_STR); $sth->bindParam(":invited_by", $userData["invited_by"], PDO::PARAM_INT); } $sth->bindParam(":avatar", $userData["avatar"], PDO::PARAM_STR); $sth->bindParam(":gender", $userData["gender"], PDO::PARAM_INT); $sth->bindParam(":parkerad", $userData["parkerad"], PDO::PARAM_INT); $sth->bindParam(":alder", $userData["alder"], PDO::PARAM_INT); $sth->bindParam(":info", $userData["info"], PDO::PARAM_STR); $sth->bindParam(":mbitupp", $userData["mbitupp"], PDO::PARAM_STR); $sth->bindParam(":mbitner", $userData["mbitner"], PDO::PARAM_STR); $sth->bindParam(":isp", $userData["isp"], PDO::PARAM_STR); $sth->bindParam(":anonym", $userData["anonym"], PDO::PARAM_STR); $sth->bindParam(":anonymratio", $userData["anonymratio"], PDO::PARAM_STR); $sth->bindParam(":anonymicons", $userData["anonymicons"], PDO::PARAM_STR); $sth->bindParam(":acceptpms", $userData["acceptpms"], PDO::PARAM_STR); $sth->bindParam(":tvvy", $userData["tvvy"], PDO::PARAM_INT); $sth->bindParam(":https", $userData["https"], PDO::PARAM_INT); $sth->bindParam(":notifs", $userData["notifs"], PDO::PARAM_STR); $sth->bindParam(":avatars", $userData["avatars"], PDO::PARAM_STR); $sth->bindParam(":torrentsperpage", $userData["torrentsperpage"], PDO::PARAM_INT); $sth->bindParam(":topicsperpage", $userData["topicsperpage"], PDO::PARAM_INT); $sth->bindParam(":postsperpage", $userData["postsperpage"], PDO::PARAM_INT); $sth->bindParam(":passhash", $userData["passhash"], PDO::PARAM_STR); $sth->bindParam(":design", $userData["design"], PDO::PARAM_INT); $sth->bindParam(":css", $userData["css"], PDO::PARAM_STR); $sth->bindParam(":search_sort", $userData["search_sort"], PDO::PARAM_STR); $sth->bindParam(":doljuploader", $userData["doljuploader"], PDO::PARAM_INT); $sth->bindParam(":section", $userData["section"], PDO::PARAM_STR); $sth->bindParam(":p2p", $userData["p2p"], PDO::PARAM_INT); $sth->bindParam(":language", $userData["language"], PDO::PARAM_STR); $sth->bindParam(":userId", $userId, PDO::PARAM_INT); $sth->execute(); if ($changedPassword && $this->getId() == $userId) { $this->login($user["username"], $userData["password"]); } }