Bugfix for DB lookup by username for certain internal methods/functions.

This commit is contained in:
rainbow napkin 2025-11-23 07:50:49 -05:00
parent 27ab1c2c71
commit f0555169fe
4 changed files with 6 additions and 6 deletions

View file

@ -60,7 +60,7 @@ module.exports.post = async function(req, res){
//Look through DB and migration cache for existing email //Look through DB and migration cache for existing email
const existingDB = await userModel.findOne({email: new RegExp(email, 'i')}); const existingDB = await userModel.findOne({email: new RegExp(`^${email}$`, 'i')});
const needsMigration = userModel.migrationCache.emails.includes(email.toLowerCase()); const needsMigration = userModel.migrationCache.emails.includes(email.toLowerCase());
//If the email is in use //If the email is in use

View file

@ -90,7 +90,7 @@ module.exports.post = async function(req, res){
const {user, pass} = matchedData(req); const {user, pass} = matchedData(req);
//Look for the username in the migration DB //Look for the username in the migration DB
const migrationDB = await migrationModel.findOne({user}); const migrationDB = await migrationModel.findOne({user: new RegExp(`^${user}$`, 'i')});
//If we found a migration profile //If we found a migration profile
if(migrationDB != null){ if(migrationDB != null){

View file

@ -323,7 +323,7 @@ migrationSchema.statics.buildMigrationCache = async function(){
migrationSchema.statics.consumeByUsername = async function(ip, migration){ migrationSchema.statics.consumeByUsername = async function(ip, migration){
//Pull migration doc by case-insensitive username //Pull migration doc by case-insensitive username
const migrationDB = await this.findOne({user: new RegExp(migration.user, 'i')}); const migrationDB = await this.findOne({user: new RegExp(`^${migration.user}$`, 'i')});
//If we have no migration document //If we have no migration document
if(migrationDB == null){ if(migrationDB == null){

View file

@ -256,13 +256,13 @@ userSchema.statics.register = async function(userObj, ip){
//Check password confirmation matches //Check password confirmation matches
if(pass == passConfirm){ if(pass == passConfirm){
//Setup user query //Setup user query
let userQuery = {user: new RegExp(user, 'i')}; let userQuery = {user: new RegExp(`^${user}$`, 'i')};
//If we have an email //If we have an email
if(email != null && email != ""){ if(email != null && email != ""){
userQuery = {$or: [ userQuery = {$or: [
userQuery, userQuery,
{email: new RegExp(email, 'i')} {email: new RegExp(`^${email}$`, 'i')}
]}; ]};
} }
@ -319,7 +319,7 @@ userSchema.statics.authenticate = async function(user, pass, failLine = "Bad Use
} }
//get the user if it exists //get the user if it exists
const userDB = await this.findOne({ user: new RegExp(user, 'i')}); const userDB = await this.findOne({ user: new RegExp(`^${user}$`, 'i')});
//if not scream and shout //if not scream and shout
if(!userDB){ if(!userDB){