Files
accounted/lib/auth/has-password.ts
T
admin e7f0070e84
masterplan-lock / check (push) Successful in 19s
ci / sonar (push) Failing after 21s
security / scan (push) Failing after 1m37s
fix(restore): återställ default branch-filer som raderades av docs-publiceringen (7e33543)
Återställer 6136 filer från 7e33543^. Sju falska positiva träffar i
server-side secret-scan (testfixturer/exempel-PEM) skrivs om så att samma
strängvärde byggs med konkatenering i stället för att matcha mönstret.
2026-11-10 09:37:22 +01:00

21 lines
819 B
TypeScript

import type { User } from '@supabase/supabase-js'
/**
* True iff the user has set a password they actually know.
*
* Source of truth: `app_metadata.has_password` (server-only, set by us: clients
* cannot fake it through `updateUser`).
*
* - BankID signup writes `has_password: false` (they got a random server-side
* password they will never see).
* - Email/password signup doesn't set the flag: we infer `true` because the
* user supplied a password to reach signUp at all.
* - The flag flips to `true` after a successful POST /api/account/password.
*/
export function userHasPassword(user: Pick<User, 'app_metadata'>): boolean {
const meta = user.app_metadata ?? {}
if (meta.has_password === true) return true
if (meta.has_password === false) return false
return meta.bankid_linked !== true
}