Moderators can no longer alt check administrators' alts, and so on

This commit is contained in:
Guangcong Luo
2012-02-19 20:05:35 -05:00
parent 2084b29f92
commit d7738b257b
2 changed files with 26 additions and 1 deletions

View File

@@ -103,8 +103,15 @@ function parseCommandLocal(user, cmd, target, room, socket, message)
}
var alts = targetUser.getAlts();
var altGroup = targetUser.getAltGroup();
socket.emit('console', 'User: '+targetUser.name);
if (!user.canMod(altGroup))
{
return true;
}
var output = '';
for (var i in targetUser.prevNames)
{
@@ -116,7 +123,8 @@ function parseCommandLocal(user, cmd, target, room, socket, message)
for (var j=0; j<alts.length; j++)
{
var targetAlt = getUser(alts[j]);
if (!targetAlt || !user.canMod(targetAlt)) continue;
if (!targetAlt || !user.canMod(targetAlt.group)) continue;
if (!targetAlt.named && !targetAlt.connected) continue;
socket.emit('console', 'Alt: '+targetAlt.name);
output = '';

View File

@@ -490,6 +490,23 @@ function User(name, socket, token)
}
return alts;
};
this.getAltGroup = function() {
var groupRanks = {'+': 1, '%': 2, '@': 3, '&': 100};
var group = selfP.group;
var groupRank = (groupRanks[group] || 0);
for (var i in users)
{
if (users[i].ip === selfP.ip && users[i] !== selfP)
{
if ((groupRanks[users[i].group]||0) > groupRank)
{
group = users[i].group;
groupRank = (groupRanks[group] || 0);
}
}
}
return group;
};
this.ban = function(noRecurse) {
bannedIps[selfP.ip] = selfP.userid;
// no need to recurse, since the root for-loop already bans everything with your IP