diff --git a/users.js b/users.js index 6685615e9a..84e7c6621f 100644 --- a/users.js +++ b/users.js @@ -30,7 +30,9 @@ var prevUsers = {}; var numUsers = 0; var bannedIps = {}; +var bannedUsers = {}; var lockedIps = {}; +var lockedUsers = {}; /** * Get a user. @@ -499,10 +501,23 @@ var User = (function () { var oldid = this.userid; delete users[oldid]; this.userid = userid; - users[this.userid] = this; + users[userid] = this; this.authenticated = !!authenticated; this.forceRenamed = !!forcible; + if (authenticated && userid in bannedUsers) { + var bannedUnder = ''; + if (bannedUsers[userid] !== userid) bannedUnder = ' under the username '+bannedUsers[userid]; + this.send("|popup|Your username ("+name+") is banned"+bannedUnder+"'. Your ban will expire in a few days."+(config.appealurl ? " Or you can appeal at:\n" + config.appealurl:"")); + this.ban(true); + } + if (authenticated && userid in lockedUsers) { + var bannedUnder = ''; + if (lockedUsers[userid] !== userid) bannedUnder = ' under the username '+lockedUsers[userid]; + this.send("|popup|Your username ("+name+") is locked"+bannedUnder+"'. Your lock will expire in a few days."+(config.appealurl ? " Or you can appeal at:\n" + config.appealurl:"")); + this.lock(true); + } + for (var i=0; i