diff --git a/src/components/pages/urls/EditUrlModal.tsx b/src/components/pages/urls/EditUrlModal.tsx index 2d3271a2..e76d76eb 100644 --- a/src/components/pages/urls/EditUrlModal.tsx +++ b/src/components/pages/urls/EditUrlModal.tsx @@ -18,10 +18,10 @@ export default function EditUrlModal({ if (!url) return null; const [maxViews, setMaxViews] = useState(url?.maxViews ?? null); - const [password, setPassword] = useState(''); const [vanity, setVanity] = useState(url?.vanity ?? null); const [destination, setDestination] = useState(url?.destination ?? null); const [enabled, setEnabled] = useState(url?.enabled ?? true); + const [password, setPassword] = useState(''); const handleRemovePassword = async () => { if (!url.password) return; diff --git a/src/lib/db/models/url.ts b/src/lib/db/models/url.ts index 61d08d53..2fe02284 100755 --- a/src/lib/db/models/url.ts +++ b/src/lib/db/models/url.ts @@ -3,3 +3,11 @@ import type { Url as PrismaUrl } from '@/prisma/client'; export type Url = PrismaUrl & { similarity?: number; }; + +export function cleanUrlPasswords(urls: Url[]) { + for (const url of urls) { + (url as any).password = !!url.password; + } + + return urls; +} diff --git a/src/server/routes/api/user/urls/index.ts b/src/server/routes/api/user/urls/index.ts index b2d95006..876c8fe5 100755 --- a/src/server/routes/api/user/urls/index.ts +++ b/src/server/routes/api/user/urls/index.ts @@ -2,7 +2,7 @@ import { config } from '@/lib/config'; import { hashPassword } from '@/lib/crypto'; import { randomCharacters } from '@/lib/random'; import { prisma } from '@/lib/db'; -import { Url } from '@/lib/db/models/url'; +import { cleanUrlPasswords, Url } from '@/lib/db/models/url'; import { log } from '@/lib/logger'; import { z } from 'zod'; import { onShorten } from '@/lib/webhooks'; @@ -173,12 +173,9 @@ export default fastifyPlugin( where: { userId: req.user.id, }, - omit: { - password: true, - }, }); - return res.send(urls); + return res.send(cleanUrlPasswords(urls)); }); done();