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); | ||||
| 
 | ||||
| //#region Validators
 | ||||
| export function validateUsername(username: string): boolean { | ||||
| 	return typeof username == 'string' && /^[a-zA-Z0-9_]{1,20}$/.test(username); | ||||
| export function validateUsername(username: string, remote?: boolean): boolean { | ||||
| 	return typeof username == 'string' && (remote ? /^\w+([\w\.-]+\w+)?$/ : /^[a-zA-Z0-9_]{1,20}$/).test(username); | ||||
| } | ||||
| 
 | ||||
| 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'); | ||||
| 	} | ||||
| 
 | ||||
| 	if (!validateUsername(x.preferredUsername)) { | ||||
| 	if (!validateUsername(x.preferredUsername, true)) { | ||||
| 		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) => { | ||||
| 	const isUsername = validateUsername(ps.query.replace('@', '')); | ||||
| 	const isUsername = validateUsername(ps.query.replace('@', ''), true); | ||||
| 
 | ||||
| 	let users: IUser[] = []; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue