mirror of https://github.com/calzoneman/sync.git
Registered users now have rank 1, guests' names are grey
Any new registrations will set global_rank=1 in the database If you wish to upgrade, run "UPDATE `registrations` SET `global_rank`=1 WHERE `global_rank`=0" on your MySQL database
This commit is contained in:
parent
e9d3fa83e4
commit
8a8838a58d
2
auth.js
2
auth.js
|
@ -55,7 +55,7 @@ exports.register = function(name, pw) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
var hash = bcrypt.hashSync(pw, 10);
|
var hash = bcrypt.hashSync(pw, 10);
|
||||||
var query = "INSERT INTO registrations VALUES (NULL, '{1}', '{2}', 0)"
|
var query = "INSERT INTO registrations VALUES (NULL, '{1}', '{2}', 1)"
|
||||||
.replace(/\{1\}/, name)
|
.replace(/\{1\}/, name)
|
||||||
.replace(/\{2\}/, hash);
|
.replace(/\{2\}/, hash);
|
||||||
var results = db.querySync(query);
|
var results = db.querySync(query);
|
||||||
|
|
18
channel.js
18
channel.js
|
@ -999,20 +999,22 @@ Channel.prototype.filterMessage = function(msg) {
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
Channel.prototype.sendMessage = function(username, msg, msgclass) {
|
Channel.prototype.sendMessage = function(username, msg, msgclass, data) {
|
||||||
// I don't want HTML from strangers
|
// I don't want HTML from strangers
|
||||||
msg = msg.replace(/</g, "<").replace(/>/g, ">");
|
msg = msg.replace(/</g, "<").replace(/>/g, ">");
|
||||||
msg = this.filterMessage(msg);
|
msg = this.filterMessage(msg);
|
||||||
this.sendAll("chatMsg", {
|
var msgobj = {
|
||||||
username: username,
|
username: username,
|
||||||
msg: msg,
|
msg: msg,
|
||||||
msgclass: msgclass
|
msgclass: msgclass
|
||||||
});
|
};
|
||||||
this.chatbuffer.push({
|
if(data) {
|
||||||
username: username,
|
for(var key in data) {
|
||||||
msg: msg,
|
msgobj[key] = data[key];
|
||||||
msgclass: msgclass
|
}
|
||||||
});
|
}
|
||||||
|
this.sendAll("chatMsg", msgobj);
|
||||||
|
this.chatbuffer.push(msgobj);
|
||||||
if(this.chatbuffer.length > 15)
|
if(this.chatbuffer.length > 15)
|
||||||
this.chatbuffer.shift();
|
this.chatbuffer.shift();
|
||||||
this.logger.log("<" + username + "." + msgclass + "> " + msg);
|
this.logger.log("<" + username + "." + msgclass + "> " + msg);
|
||||||
|
|
|
@ -23,6 +23,13 @@ function handle(chan, user, msg) {
|
||||||
chan.sendMessage(user.name, msg.substring(5), "shout");
|
chan.sendMessage(user.name, msg.substring(5), "shout");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if(msg.indexOf("/m ") == 0) {
|
||||||
|
if(user.rank >= Rank.Moderator) {
|
||||||
|
chan.sendMessage(user.name, msg.substring(3), "modflair", {
|
||||||
|
modflair: user.rank
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
else if(msg.indexOf("/kick ") == 0) {
|
else if(msg.indexOf("/kick ") == 0) {
|
||||||
handleKick(chan, user, msg.substring(6).split(" "));
|
handleKick(chan, user, msg.substring(6).split(" "));
|
||||||
}
|
}
|
||||||
|
|
|
@ -83,7 +83,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.userlist_guest {
|
.userlist_guest {
|
||||||
color: #aaaaaa;
|
color: #888888;
|
||||||
}
|
}
|
||||||
|
|
||||||
.action {
|
.action {
|
||||||
|
|
|
@ -178,7 +178,7 @@ function initCallbacks() {
|
||||||
var name = users[i].children[1].innerHTML;
|
var name = users[i].children[1].innerHTML;
|
||||||
// Reformat user
|
// Reformat user
|
||||||
if(name == data.name) {
|
if(name == data.name) {
|
||||||
fmtUserlistItem(users[i], data.rank, data.leader);
|
formatUserlistItem(users[i], data.rank, data.leader);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -23,7 +23,7 @@ function addUser(name, rank, leader) {
|
||||||
var div = $("<div/>").attr("class", "userlist_item");
|
var div = $("<div/>").attr("class", "userlist_item");
|
||||||
var flair = $("<span/>").appendTo(div);
|
var flair = $("<span/>").appendTo(div);
|
||||||
var nametag = $("<span/>").text(name).appendTo(div);
|
var nametag = $("<span/>").text(name).appendTo(div);
|
||||||
fmtUserlistItem(div[0], rank, leader);
|
formatUserlistItem(div[0], rank, leader);
|
||||||
addUserDropdown(div, name);
|
addUserDropdown(div, name);
|
||||||
var users = $("#userlist").children();
|
var users = $("#userlist").children();
|
||||||
for(var i = 0; i < users.length; i++) {
|
for(var i = 0; i < users.length; i++) {
|
||||||
|
@ -37,15 +37,10 @@ function addUser(name, rank, leader) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Format a userlist entry based on a person"s rank
|
// Format a userlist entry based on a person"s rank
|
||||||
function fmtUserlistItem(div, rank, leader) {
|
function formatUserlistItem(div, rank, leader) {
|
||||||
var name = div.children[1];
|
var name = div.children[1];
|
||||||
$(name).removeClass();
|
$(name).removeClass();
|
||||||
if(rank >= Rank.Siteadmin)
|
$(name).addClass(getNameColor(rank));
|
||||||
$(name).attr("class", "userlist_siteadmin");
|
|
||||||
else if(rank >= Rank.Owner)
|
|
||||||
$(name).attr("class", "userlist_owner");
|
|
||||||
else if(rank >= Rank.Moderator)
|
|
||||||
$(name).attr("class", "userlist_op");
|
|
||||||
|
|
||||||
var flair = div.children[0];
|
var flair = div.children[0];
|
||||||
// denote current leader with a star
|
// denote current leader with a star
|
||||||
|
@ -57,6 +52,19 @@ function fmtUserlistItem(div, rank, leader) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getNameColor(rank) {
|
||||||
|
if(rank >= Rank.Siteadmin)
|
||||||
|
return "userlist_siteadmin";
|
||||||
|
else if(rank >= Rank.Owner)
|
||||||
|
return "userlist_owner";
|
||||||
|
else if(rank >= Rank.Moderator)
|
||||||
|
return "userlist_op";
|
||||||
|
else if(rank == Rank.Guest)
|
||||||
|
return "userlist_guest";
|
||||||
|
else
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
// Adds a dropdown with user actions (promote/demote/leader)
|
// Adds a dropdown with user actions (promote/demote/leader)
|
||||||
function addUserDropdown(entry, name) {
|
function addUserDropdown(entry, name) {
|
||||||
$(entry).find(".dropdown").remove();
|
$(entry).find(".dropdown").remove();
|
||||||
|
@ -191,30 +199,24 @@ function formatChatMessage(data) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
var name = $("<span/>").appendTo(div);
|
||||||
|
$("<strong/>").text("<" + data.username + "> ").appendTo(name);
|
||||||
|
var message = $("<span/>").appendTo(div);
|
||||||
|
message[0].innerHTML = data.msg;
|
||||||
if(data.msgclass == "action") {
|
if(data.msgclass == "action") {
|
||||||
var message = $("<span/>")
|
name.remove();
|
||||||
.addClass("action")
|
message.addClass("action");
|
||||||
.appendTo(div);
|
|
||||||
message[0].innerHTML = data.username + " " + data.msg;
|
message[0].innerHTML = data.username + " " + data.msg;
|
||||||
}
|
}
|
||||||
else if(data.msgclass == "drink") {
|
if(data.msgclass == "drink") {
|
||||||
div.addClass("drink");
|
div.addClass("drink");
|
||||||
var name = $("<span/>");
|
|
||||||
$("<strong/>").text("<" + data.username + "> ").appendTo(name);
|
|
||||||
var message = $("<span/>");
|
|
||||||
message[0].innerHTML = data.msg;
|
|
||||||
name.appendTo(div);
|
|
||||||
message.appendTo(div);
|
|
||||||
}
|
}
|
||||||
else {
|
if(data.msgclass == "shout") {
|
||||||
var name = $("<span/>");
|
message.addClass("shout");
|
||||||
$("<strong/>").text("<" + data.username + "> ").appendTo(name);
|
name.addClass("shout");
|
||||||
if(data.msgclass == "shout")
|
}
|
||||||
name.addClass("shout");
|
if(data.modflair) {
|
||||||
var message = $("<span/>").addClass(data.msgclass);
|
name.addClass(getNameColor(data.modflair));
|
||||||
message[0].innerHTML = data.msg;
|
|
||||||
name.appendTo(div);
|
|
||||||
message.appendTo(div);
|
|
||||||
}
|
}
|
||||||
return div;
|
return div;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue