sendSystemMessage() public method

public sendSystemMessage ( $receiver, $subject, $message )
Beispiel #1
0
 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");
     }
 }
Beispiel #2
0
 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"]);
     }
 }