Fixing thelounge username case-sensitivity - issue#2943

Removing the duplicate user profiles
This commit is contained in:
Ashwini Kammar 2020-05-15 10:51:01 +01:00
parent c4ff314a12
commit 9e8033e36e
2 changed files with 28 additions and 2 deletions

View file

@ -34,18 +34,40 @@ ClientManager.prototype.init = function (identHandler, sockets) {
};
ClientManager.prototype.findClient = function (name) {
return this.clients.find((u) => u.name === name);
name = name.toLowerCase();
return this.clients.find((u) => u.name.toLowerCase() === name);
};
ClientManager.prototype.loadUsers = function () {
const users = this.getUsers();
let users = this.getUsers();
if (users.length === 0) {
log.info(
`There are currently no users. Create one with ${colors.bold("thelounge add <name>")}.`
);
return;
}
const alreadySeenUsers = new Set();
users = users.filter((user) => {
user = user.toLowerCase();
if (alreadySeenUsers.has(user)) {
log.error(
`There is more than one user named "${colors.bold(
user
)}". Usernames are now case insensitive, duplicate users will not load.`
);
return false;
}
alreadySeenUsers.add(user);
return true;
});
// This callback is used by Auth plugins to load users they deem acceptable
const callbackLoadUser = (user) => {
this.loadUser(user);

View file

@ -803,6 +803,10 @@ function performAuthentication(data) {
return;
}
if (typeof data.user !== "string") {
return;
}
const authCallback = (success) => {
// Authorization failed
if (!success) {