fix(api): 🐛 Fix lookup endpoints thinking local user is remote

This commit is contained in:
Jesse Wierzbinski 2024-11-23 23:09:59 +01:00
parent ace6921447
commit da369e604c
No known key found for this signature in database
2 changed files with 12 additions and 2 deletions

View file

@ -1,4 +1,4 @@
import { apiRoute, applyConfig, auth, userAddressValidator } from "@/api";
import { apiRoute, applyConfig, auth, userAddressValidatorRemote } from "@/api";
import { createRoute } from "@hono/zod-openapi";
import { User } from "@versia/kit/db";
import { RolePermissions, Users } from "@versia/kit/tables";
@ -62,7 +62,7 @@ export default apiRoute((app) =>
const { user } = context.get("auth");
// Check if acct is matching format username@domain.com or @username@domain.com
const accountMatches = acct?.trim().match(userAddressValidator);
const accountMatches = acct?.trim().match(userAddressValidatorRemote);
if (accountMatches) {
// Remove leading @ if it exists

View file

@ -106,6 +106,16 @@ export const userAddressValidator = createRegExp(
[global],
);
export const userAddressValidatorRemote = createRegExp(
maybe("@"),
oneOrMore(anyOf(letter.lowercase, digit, charIn("-_"))).groupedAs(
"username",
),
exactly("@"),
oneOrMore(anyOf(letter, digit, charIn("_-.:"))).groupedAs("domain"),
[global],
);
export const webfingerMention = createRegExp(
exactly("acct:"),
oneOrMore(anyOf(letter, digit, charIn("-_"))).groupedAs("username"),