Allow hyphens in the middle of remote usernames (#3440)
* Allow hyphens in the middle of remote usernames refs: d797c29db462de4a3d69a5077a1ae4d03195b6f2 * Make options fallback better * Make options flat
This commit is contained in:
parent
1c99ef454b
commit
53c559c001
|
@ -147,8 +147,8 @@ export const isRemoteUser = (user: any): user is IRemoteUser =>
|
||||||
!isLocalUser(user);
|
!isLocalUser(user);
|
||||||
|
|
||||||
//#region Validators
|
//#region Validators
|
||||||
export function validateUsername(username: string): boolean {
|
export function validateUsername(username: string, remote?: boolean): boolean {
|
||||||
return typeof username == 'string' && /^[a-zA-Z0-9_]{1,20}$/.test(username);
|
return typeof username == 'string' && (remote ? /^\w+([\w\.-]+\w+)?$/ : /^[a-zA-Z0-9_]{1,20}$/).test(username);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function validatePassword(password: string): boolean {
|
export function validatePassword(password: string): boolean {
|
||||||
|
|
|
@ -43,7 +43,7 @@ function validatePerson(x: any, uri: string) {
|
||||||
return new Error('invalid person: inbox is not a string');
|
return new Error('invalid person: inbox is not a string');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!validateUsername(x.preferredUsername)) {
|
if (!validateUsername(x.preferredUsername, true)) {
|
||||||
return new Error('invalid person: invalid username');
|
return new Error('invalid person: invalid username');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,7 @@ export const meta = {
|
||||||
};
|
};
|
||||||
|
|
||||||
export default define(meta, (ps, me) => new Promise(async (res, rej) => {
|
export default define(meta, (ps, me) => new Promise(async (res, rej) => {
|
||||||
const isUsername = validateUsername(ps.query.replace('@', ''));
|
const isUsername = validateUsername(ps.query.replace('@', ''), true);
|
||||||
|
|
||||||
let users: IUser[] = [];
|
let users: IUser[] = [];
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue