Merge pull request #537 from mchangrh/lenientSetUsername

make privateIDUsername check more lenient #532
This commit is contained in:
Ajay Ramachandran
2023-02-18 00:09:37 -05:00
committed by GitHub
3 changed files with 125 additions and 59 deletions

View File

@@ -95,11 +95,10 @@ export async function setUsername(req: Request, res: Response): Promise<Response
}
async function checkPrivateUsername(username: string, userID: string): Promise<boolean> {
const userIDHash = await getHashCache(userID);
if (username == userID) return false;
if (username.length <= config.minUserIDLength) return true; // don't check for cross matches <= 30 characters
const userNameHash = await getHashCache(username);
if (userIDHash == userNameHash) return false;
const sponsorTimeRow = await db.prepare("get", `SELECT "userID" FROM "sponsorTimes" WHERE "userID" = ? LIMIT 1`, [userNameHash]);
const userNameRow = await db.prepare("get", `SELECT "userID" FROM "userNames" WHERE "userID" = ? LIMIT 1`, [userNameHash]);
if ((sponsorTimeRow || userNameRow)?.userID) return false;
if (userNameRow?.userID) return false;
return true;
}