fix(usernames): filter @ on server side for username lookup

This commit is contained in:
Sabe Jones
2018-11-13 15:34:50 -06:00
parent 481bd6727d
commit d691dee2ca

View File

@@ -130,13 +130,14 @@ api.getMemberByUsername = {
if (validationErrors) throw validationErrors; if (validationErrors) throw validationErrors;
let username = req.params.username.toLowerCase(); let username = req.params.username.toLowerCase();
if (username[0] === '@') username = username.slice(1, username.length);
let member = await User let member = await User
.findOne({'auth.local.lowerCaseUsername': username, 'flags.verifiedUsername': true}) .findOne({'auth.local.lowerCaseUsername': username, 'flags.verifiedUsername': true})
.select(memberFields) .select(memberFields)
.exec(); .exec();
if (!member || !member.flags.verifiedUsername) throw new NotFound(res.t('userNotFound')); if (!member) throw new NotFound(res.t('userNotFound'));
// manually call toJSON with minimize: true so empty paths aren't returned // manually call toJSON with minimize: true so empty paths aren't returned
let memberToJSON = member.toJSON({minimize: true}); let memberToJSON = member.toJSON({minimize: true});