Correctly remove name from users online on leave

This commit is contained in:
Kasper Rynning-Tønnesen
2018-08-30 14:54:46 +02:00
parent dfaa2c7bb3
commit 0c738ffd12
2 changed files with 12 additions and 5 deletions

View File

@@ -45,8 +45,12 @@ function remove_name_from_db(guid, name) {
db.collection("connected_users").find({"_id": "total_users"}, function(err, all_users) { db.collection("connected_users").find({"_id": "total_users"}, function(err, all_users) {
var hasOne = all_users[0].total_users.some(function(v){ return v.indexOf(guid)>=0 }); var hasOne = all_users[0].total_users.some(function(v){ return v.indexOf(guid)>=0 });
if(!hasOne) { if(!hasOne) {
db.collection("user_names").update({"_id": "all_names"}, {$pull: {names: name}}, function(err, updated) { db.collection("user_names").find({"guid": guid}, function(err, user){
db.collection("user_names").remove({"guid": guid}, function(err, removed) { }); if(user.length == 1){
db.collection("user_names").update({"_id": "all_names"}, {$pull: {names: user[0].name}}, function(err, updated) {
db.collection("user_names").remove({"guid": guid}, function(err, removed) { });
});
}
}); });
} }
}); });

View File

@@ -771,6 +771,9 @@ function left_channel(coll, guid, short_id, in_list, socket, change) {
}); });
io.to(coll).emit("viewers", new_doc[0].users.length); io.to(coll).emit("viewers", new_doc[0].users.length);
socket.leave(coll); socket.leave(coll);
if(!change) {
Functions.remove_name_from_db(guid, name);
}
}); });
}); });
@@ -778,13 +781,13 @@ function left_channel(coll, guid, short_id, in_list, socket, change) {
db.collection("connected_users").update({"_id": "offline_users"}, {$pull: {users: guid}}, function(err, updated){ db.collection("connected_users").update({"_id": "offline_users"}, {$pull: {users: guid}}, function(err, updated){
//if(updated.nModified > 0) { //if(updated.nModified > 0) {
db.collection("connected_users").update({"_id": "total_users"}, {$pull: {total_users: guid + coll}}, function(err, updated){}); db.collection("connected_users").update({"_id": "total_users"}, {$pull: {total_users: guid + coll}}, function(err, updated){});
if(!change) {
Functions.remove_name_from_db(guid, name);
}
//} //}
}); });
} }
if(!change) {
Functions.remove_name_from_db(guid, name);
}
}); });
Functions.remove_unique_id(short_id); Functions.remove_unique_id(short_id);
} }