diff --git a/lib/channel-new.js b/lib/channel-new.js index 70eae989..bac6e95d 100644 --- a/lib/channel-new.js +++ b/lib/channel-new.js @@ -1137,6 +1137,20 @@ Channel.prototype.sendRecentChat = function (users) { }); }; +/** + * Sends a user profile + */ +Channel.prototype.sendUserProfile = function (users, user) { + var packet = { + name: user.name, + profile: user.profile + }; + + users.forEach(function (u) { + u.socket.emit("setUserProfile", packet); + }); +}; + /** * Packs userdata for addUser or userlist */ diff --git a/lib/user.js b/lib/user.js index 856267ce..6158c801 100644 --- a/lib/user.js +++ b/lib/user.js @@ -58,6 +58,18 @@ function User(socket) { if (announcement != null) { self.socket.emit("announcement", announcement); } + + self.on("login", function () { + db.recordVisit(self.ip, self.name); + db.users.getProfile(self.name, function (err, profile) { + if (!err) { + self.profile = profile; + if (self.inChannel()) { + self.channel.sendUserProfile(self.channel.users, self); + } + } + }); + }); } /** diff --git a/www/assets/js/util.js b/www/assets/js/util.js index eae3a57f..52334df7 100644 --- a/www/assets/js/util.js +++ b/www/assets/js/util.js @@ -119,8 +119,10 @@ function formatUserlistItem(div) { $("").text(meta.ip).appendTo(profile); } if (meta.aliases) { - $("
").text("aliases: " + meta.aliases.join(", ")).appendTo(profile); + $("