Fix previous fix

This commit is contained in:
calzoneman 2016-06-26 21:15:33 -07:00
parent e9fdb1a7e5
commit c70dc83504
2 changed files with 24 additions and 16 deletions

View file

@ -322,22 +322,31 @@ Channel.prototype.joinUser = function (user, data) {
return; return;
} }
if (self.is(Flags.C_REGISTERED)) { function refreshUserAccount(cb) {
user.waitFlag(Flags.U_LOGGED_IN, () => { user.refreshAccount({
user.refreshAccount({ channel: self.name,
channel: self.name, name: user.getName()
name: user.getName() }, function (err, account) {
}, function (err, account) { if (err) {
if (err) { Logger.errlog.log("user.refreshAccount failed at Channel.joinUser");
Logger.errlog.log("user.refreshAccount failed at Channel.joinUser"); Logger.errlog.log(err.stack);
Logger.errlog.log(err.stack); self.refCounter.unref("Channel::user");
self.refCounter.unref("Channel::user"); return;
return; }
}
afterAccount(); if (cb) {
}); process.nextTick(cb);
}
}); });
}
if (self.is(Flags.C_REGISTERED) && user.is(Flags.U_LOGGED_IN)) {
refreshUserAccount(afterAccount);
} else if (self.is(Flags.C_REGISTERED)) {
user.waitFlag(Flags.U_LOGGED_IN, () => {
refreshUserAccount();
});
afterAccount();
} else { } else {
afterAccount(); afterAccount();
} }

View file

@ -301,7 +301,6 @@ User.prototype.login = function (name, pw) {
name: user.name name: user.name
}); });
db.recordVisit(self.realip, self.getName()); db.recordVisit(self.realip, self.getName());
self.socket.emit("rank", self.account.effectiveRank);
Logger.syslog.log(self.realip + " logged in as " + user.name); Logger.syslog.log(self.realip + " logged in as " + user.name);
self.setFlag(Flags.U_LOGGED_IN); self.setFlag(Flags.U_LOGGED_IN);
self.clearFlag(Flags.U_LOGGING_IN); self.clearFlag(Flags.U_LOGGING_IN);
@ -388,7 +387,6 @@ User.prototype.guestLogin = function (name) {
guest: true guest: true
}); });
db.recordVisit(self.realip, self.getName()); db.recordVisit(self.realip, self.getName());
self.socket.emit("rank", 0);
Logger.syslog.log(self.realip + " signed in as " + name); Logger.syslog.log(self.realip + " signed in as " + name);
self.setFlag(Flags.U_LOGGED_IN); self.setFlag(Flags.U_LOGGED_IN);
self.emit("login", self.account); self.emit("login", self.account);
@ -443,6 +441,7 @@ User.prototype.refreshAccount = function (opts, cb) {
} }
self.account = account; self.account = account;
if (account.effectiveRank !== old.effectiveRank) { if (account.effectiveRank !== old.effectiveRank) {
self.socket.emit("rank", self.account.effectiveRank);
self.emit("effectiveRankChange", self.account.effectiveRank); self.emit("effectiveRankChange", self.account.effectiveRank);
} }
} }