@schemavaults/auth-ui 0.7.8 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/MfaChallengeForm/mfa-challenge-form.js +2 -1
- package/dist/components/MfaChallengeForm/mfa-challenge-form.js.map +1 -1
- package/dist/components/MfaRegenerateRecoveryCodesDialog/mfa-regenerate-recovery-codes-dialog.js +2 -1
- package/dist/components/MfaRegenerateRecoveryCodesDialog/mfa-regenerate-recovery-codes-dialog.js.map +1 -1
- package/dist/components/MfaRemoveFactorDialog/mfa-remove-factor-dialog.js +2 -1
- package/dist/components/MfaRemoveFactorDialog/mfa-remove-factor-dialog.js.map +1 -1
- package/dist/components/MfaSettingsCard/mfa-settings-card.js +2 -2
- package/dist/components/MfaSettingsCard/mfa-settings-card.js.map +1 -1
- package/dist/components/RecoveryCodesPanel/recovery-codes-panel.js +1 -1
- package/dist/components/RecoveryCodesPanel/recovery-codes-panel.js.map +1 -1
- package/dist/components/TotpEnrollmentDialog/totp-enrollment-dialog.js +2 -1
- package/dist/components/TotpEnrollmentDialog/totp-enrollment-dialog.js.map +1 -1
- package/dist/components/UsersTable/UserMfaFactorsCell.d.ts +6 -0
- package/dist/components/UsersTable/UserMfaFactorsCell.js +61 -0
- package/dist/components/UsersTable/UserMfaFactorsCell.js.map +1 -0
- package/dist/components/UsersTable/UsersTable.js +1 -0
- package/dist/components/UsersTable/UsersTable.js.map +1 -1
- package/dist/components/UsersTable/columns.js +7 -0
- package/dist/components/UsersTable/columns.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,6 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
import { useState } from "react";
|
|
4
4
|
import { Button, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Input, } from "@schemavaults/ui";
|
|
5
5
|
import { useMfa } from "@schemavaults/auth-react-provider";
|
|
6
|
+
import { ShieldCheck } from "lucide-react";
|
|
6
7
|
export const MfaChallengeForm = ({ challenge_id, client_app_id, expires_at, onAuthenticated, onChallengeExpired, }) => {
|
|
7
8
|
const { submitChallenge } = useMfa();
|
|
8
9
|
const [useRecovery, setUseRecovery] = useState(false);
|
|
@@ -55,7 +56,7 @@ export const MfaChallengeForm = ({ challenge_id, client_app_id, expires_at, onAu
|
|
|
55
56
|
setError(null);
|
|
56
57
|
}, "data-testid": "mfa-challenge-toggle-recovery", children: useRecovery
|
|
57
58
|
? "Use authenticator app instead"
|
|
58
|
-
: "Use a recovery code instead" }), error && _jsx("p", { className: "text-sm text-destructive", children: error })] }), _jsx(CardFooter, { children:
|
|
59
|
+
: "Use a recovery code instead" }), error && _jsx("p", { className: "text-sm text-destructive", children: error })] }), _jsx(CardFooter, { children: _jsxs(Button, { type: "submit", disabled: submitting || value.length === 0, "data-testid": "mfa-challenge-submit", className: "flex flex-row gap-2 flex-nowrap", children: [_jsx(ShieldCheck, { className: "h-4 w-4" }), submitting ? "Verifying…" : "Verify"] }) })] })] }));
|
|
59
60
|
};
|
|
60
61
|
export default MfaChallengeForm;
|
|
61
62
|
//# sourceMappingURL=mfa-challenge-form.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mfa-challenge-form.js","sourceRoot":"","sources":["../../../src/components/MfaChallengeForm/mfa-challenge-form.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAA8C,MAAM,OAAO,CAAC;AAC7E,OAAO,EACL,MAAM,EACN,IAAI,EACJ,WAAW,EACX,eAAe,EACf,UAAU,EACV,UAAU,EACV,SAAS,EACT,KAAK,GACN,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"mfa-challenge-form.js","sourceRoot":"","sources":["../../../src/components/MfaChallengeForm/mfa-challenge-form.tsx"],"names":[],"mappings":"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"}
|
package/dist/components/MfaRegenerateRecoveryCodesDialog/mfa-regenerate-recovery-codes-dialog.js
CHANGED
|
@@ -3,6 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
3
3
|
import { useState } from "react";
|
|
4
4
|
import { Button, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, Input, } from "@schemavaults/ui";
|
|
5
5
|
import { useMfa } from "@schemavaults/auth-react-provider";
|
|
6
|
+
import { Check, RefreshCw, X } from "lucide-react";
|
|
6
7
|
import { RecoveryCodesPanel } from "../RecoveryCodesPanel";
|
|
7
8
|
export const MfaRegenerateRecoveryCodesDialog = ({ open, onClose }) => {
|
|
8
9
|
const { regenerateRecoveryCodes } = useMfa();
|
|
@@ -27,7 +28,7 @@ export const MfaRegenerateRecoveryCodesDialog = ({ open, onClose }) => {
|
|
|
27
28
|
};
|
|
28
29
|
return (_jsx(Dialog, { open: open, onOpenChange: (v) => !v && onClose(), children: _jsxs(DialogContent, { children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: "Regenerate recovery codes" }), _jsx(DialogDescription, { children: newCodes
|
|
29
30
|
? "Save the new codes. The previous set is no longer valid."
|
|
30
|
-
: "Enter your current 6-digit authenticator code to generate a new set of recovery codes. This invalidates all previous codes." })] }), newCodes ? (_jsx(RecoveryCodesPanel, { codes: newCodes, onAcknowledge: setAcknowledged })) : (_jsxs(_Fragment, { children: [_jsx(Input, { inputMode: "numeric", autoComplete: "one-time-code", maxLength: 6, value: code, onChange: (e) => setCode(e.target.value.replace(/\D+/g, "")), placeholder: "123456", "data-testid": "mfa-regenerate-code-input" }), error && _jsx("p", { className: "text-sm text-destructive", children: error })] })), _jsx(DialogFooter, { children: newCodes ? (
|
|
31
|
+
: "Enter your current 6-digit authenticator code to generate a new set of recovery codes. This invalidates all previous codes." })] }), newCodes ? (_jsx(RecoveryCodesPanel, { codes: newCodes, onAcknowledge: setAcknowledged })) : (_jsxs(_Fragment, { children: [_jsx(Input, { inputMode: "numeric", autoComplete: "one-time-code", maxLength: 6, value: code, onChange: (e) => setCode(e.target.value.replace(/\D+/g, "")), placeholder: "123456", "data-testid": "mfa-regenerate-code-input" }), error && _jsx("p", { className: "text-sm text-destructive", children: error })] })), _jsx(DialogFooter, { children: newCodes ? (_jsxs(Button, { onClick: onClose, disabled: !acknowledged, "data-testid": "mfa-regenerate-done", className: "flex flex-row gap-2 flex-nowrap", children: [_jsx(Check, { className: "h-4 w-4" }), "Done"] })) : (_jsxs(_Fragment, { children: [_jsxs(Button, { variant: "outline", onClick: onClose, disabled: submitting, className: "flex flex-row gap-2 flex-nowrap", children: [_jsx(X, { className: "h-4 w-4" }), "Cancel"] }), _jsxs(Button, { onClick: handleConfirm, disabled: submitting || code.length !== 6, "data-testid": "mfa-regenerate-confirm", className: "flex flex-row gap-2 flex-nowrap", children: [_jsx(RefreshCw, { className: "h-4 w-4" }), submitting ? "Generating…" : "Generate new codes"] })] })) })] }) }));
|
|
31
32
|
};
|
|
32
33
|
export default MfaRegenerateRecoveryCodesDialog;
|
|
33
34
|
//# sourceMappingURL=mfa-regenerate-recovery-codes-dialog.js.map
|
package/dist/components/MfaRegenerateRecoveryCodesDialog/mfa-regenerate-recovery-codes-dialog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mfa-regenerate-recovery-codes-dialog.js","sourceRoot":"","sources":["../../../src/components/MfaRegenerateRecoveryCodesDialog/mfa-regenerate-recovery-codes-dialog.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAA8B,MAAM,OAAO,CAAC;AAC7D,OAAO,EACL,MAAM,EACN,MAAM,EACN,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,KAAK,GACN,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAO3D,MAAM,CAAC,MAAM,gCAAgC,GAEzC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAgB,EAAE;IACtC,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,EAAE,CAAC;IAC7C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAkB,IAAI,CAAC,CAAC;IAChE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExD,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;QAC/B,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,CAAC;YAChD,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,QAAQ,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC;QAC1E,CAAC;gBAAS,CAAC;YACT,aAAa,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,YACtD,MAAC,aAAa,eACZ,MAAC,YAAY,eACX,KAAC,WAAW,4CAAwC,EACpD,KAAC,iBAAiB,cACf,QAAQ;gCACP,CAAC,CAAC,0DAA0D;gCAC5D,CAAC,CAAC,6HAA6H,GAC/G,IACP,EACd,QAAQ,CAAC,CAAC,CAAC,CACV,KAAC,kBAAkB,IACjB,KAAK,EAAE,QAAQ,EACf,aAAa,EAAE,eAAe,GAC9B,CACH,CAAC,CAAC,CAAC,CACF,8BACE,KAAC,KAAK,IACJ,SAAS,EAAC,SAAS,EACnB,YAAY,EAAC,eAAe,EAC5B,SAAS,EAAE,CAAC,EACZ,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAC5D,WAAW,EAAC,QAAQ,iBACR,2BAA2B,GACvC,EACD,KAAK,IAAI,YAAG,SAAS,EAAC,0BAA0B,YAAE,KAAK,GAAK,IAC5D,CACJ,EACD,KAAC,YAAY,cACV,QAAQ,CAAC,CAAC,CAAC,CACV,
|
|
1
|
+
{"version":3,"file":"mfa-regenerate-recovery-codes-dialog.js","sourceRoot":"","sources":["../../../src/components/MfaRegenerateRecoveryCodesDialog/mfa-regenerate-recovery-codes-dialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
import { useState } from "react";
|
|
4
4
|
import { Button, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, Input, } from "@schemavaults/ui";
|
|
5
5
|
import { useMfa } from "@schemavaults/auth-react-provider";
|
|
6
|
+
import { Trash2, X } from "lucide-react";
|
|
6
7
|
export const MfaRemoveFactorDialog = ({ open, factor_id, onClose, }) => {
|
|
7
8
|
const { removeFactor } = useMfa();
|
|
8
9
|
const [code, setCode] = useState("");
|
|
@@ -22,7 +23,7 @@ export const MfaRemoveFactorDialog = ({ open, factor_id, onClose, }) => {
|
|
|
22
23
|
setSubmitting(false);
|
|
23
24
|
}
|
|
24
25
|
};
|
|
25
|
-
return (_jsx(Dialog, { open: open, onOpenChange: (v) => !v && onClose(), children: _jsxs(DialogContent, { children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: "Remove authenticator" }), _jsx(DialogDescription, { children: "Enter your current 6-digit authenticator code to confirm. Removing the authenticator also invalidates your recovery codes." })] }), _jsx(Input, { inputMode: "numeric", autoComplete: "one-time-code", maxLength: 6, value: code, onChange: (e) => setCode(e.target.value.replace(/\D+/g, "")), placeholder: "123456", "data-testid": "mfa-remove-factor-code" }), error && _jsx("p", { className: "text-sm text-destructive", children: error }), _jsxs(DialogFooter, { children: [
|
|
26
|
+
return (_jsx(Dialog, { open: open, onOpenChange: (v) => !v && onClose(), children: _jsxs(DialogContent, { children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: "Remove authenticator" }), _jsx(DialogDescription, { children: "Enter your current 6-digit authenticator code to confirm. Removing the authenticator also invalidates your recovery codes." })] }), _jsx(Input, { inputMode: "numeric", autoComplete: "one-time-code", maxLength: 6, value: code, onChange: (e) => setCode(e.target.value.replace(/\D+/g, "")), placeholder: "123456", "data-testid": "mfa-remove-factor-code" }), error && _jsx("p", { className: "text-sm text-destructive", children: error }), _jsxs(DialogFooter, { children: [_jsxs(Button, { variant: "outline", onClick: onClose, disabled: submitting, className: "flex flex-row gap-2 flex-nowrap", children: [_jsx(X, { className: "h-4 w-4" }), "Cancel"] }), _jsxs(Button, { variant: "destructive", onClick: handleConfirm, disabled: submitting || code.length !== 6, "data-testid": "mfa-remove-factor-confirm", className: "flex flex-row gap-2 flex-nowrap", children: [_jsx(Trash2, { className: "h-4 w-4" }), submitting ? "Removing…" : "Remove"] })] })] }) }));
|
|
26
27
|
};
|
|
27
28
|
export default MfaRemoveFactorDialog;
|
|
28
29
|
//# sourceMappingURL=mfa-remove-factor-dialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mfa-remove-factor-dialog.js","sourceRoot":"","sources":["../../../src/components/MfaRemoveFactorDialog/mfa-remove-factor-dialog.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAA8B,MAAM,OAAO,CAAC;AAC7D,OAAO,EACL,MAAM,EACN,MAAM,EACN,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,KAAK,GACN,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"mfa-remove-factor-dialog.js","sourceRoot":"","sources":["../../../src/components/MfaRemoveFactorDialog/mfa-remove-factor-dialog.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAA8B,MAAM,OAAO,CAAC;AAC7D,OAAO,EACL,MAAM,EACN,MAAM,EACN,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,KAAK,GACN,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAQzC,MAAM,CAAC,MAAM,qBAAqB,GAAmC,CAAC,EACpE,IAAI,EACJ,SAAS,EACT,OAAO,GACR,EAAgB,EAAE;IACjB,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,EAAE,CAAC;IAClC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAExD,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;QAC/B,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,MAAM,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,QAAQ,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC;QACvE,CAAC;gBAAS,CAAC;YACT,aAAa,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,YACtD,MAAC,aAAa,eACZ,MAAC,YAAY,eACX,KAAC,WAAW,uCAAmC,EAC/C,KAAC,iBAAiB,6IAIE,IACP,EACf,KAAC,KAAK,IACJ,SAAS,EAAC,SAAS,EACnB,YAAY,EAAC,eAAe,EAC5B,SAAS,EAAE,CAAC,EACZ,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAC5D,WAAW,EAAC,QAAQ,iBACR,wBAAwB,GACpC,EACD,KAAK,IAAI,YAAG,SAAS,EAAC,0BAA0B,YAAE,KAAK,GAAK,EAC7D,MAAC,YAAY,eACX,MAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAC,iCAAiC,aAE3C,KAAC,CAAC,IAAC,SAAS,EAAC,SAAS,GAAG,cAElB,EACT,MAAC,MAAM,IACL,OAAO,EAAC,aAAa,EACrB,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,iBAC7B,2BAA2B,EACvC,SAAS,EAAC,iCAAiC,aAE3C,KAAC,MAAM,IAAC,SAAS,EAAC,SAAS,GAAG,EAC7B,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,IAC7B,IACI,IACD,GACT,CACV,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|
|
@@ -3,7 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
3
3
|
import { useState } from "react";
|
|
4
4
|
import { Button, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, cn, } from "@schemavaults/ui";
|
|
5
5
|
import { useMfa } from "@schemavaults/auth-react-provider";
|
|
6
|
-
import { ShieldCheck, ShieldAlert } from "lucide-react";
|
|
6
|
+
import { ShieldCheck, ShieldAlert, KeyRound, ShieldOff, Smartphone, } from "lucide-react";
|
|
7
7
|
import { TotpEnrollmentDialog } from "../TotpEnrollmentDialog";
|
|
8
8
|
import { MfaRemoveFactorDialog } from "../MfaRemoveFactorDialog";
|
|
9
9
|
import { MfaRegenerateRecoveryCodesDialog } from "../MfaRegenerateRecoveryCodesDialog";
|
|
@@ -15,7 +15,7 @@ export const MfaSettingsCard = ({ className, }) => {
|
|
|
15
15
|
const enabled = !!status?.enabled;
|
|
16
16
|
return (_jsxs(Card, { className: cn("w-full", className), children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "flex items-center gap-2", children: [enabled ? (_jsx(ShieldCheck, { className: "h-5 w-5 text-emerald-600" })) : (_jsx(ShieldAlert, { className: "h-5 w-5 text-muted-foreground" })), "Multi-Factor Authentication"] }), _jsx(CardDescription, { children: enabled
|
|
17
17
|
? "An authenticator app is required at sign-in."
|
|
18
|
-
: "Add a second factor to protect your account." })] }), _jsx(CardContent, { children: isLoading ? (_jsx("p", { className: "text-sm text-muted-foreground", children: "Loading status\u2026" })) : enabled ? (_jsxs("div", { className: "space-y-2 text-sm", children: [_jsxs("div", { children: [_jsx("strong", { children: "Status:" }), " Enabled (TOTP)"] }), typeof status?.recovery_codes_remaining === "number" && (_jsxs("div", { children: [_jsx("strong", { children: "Recovery codes remaining:" }), " ", status.recovery_codes_remaining] })), typeof status?.verified_at === "number" && (_jsxs("div", { className: "text-muted-foreground", children: ["Enabled on", " ", new Date(status.verified_at).toLocaleString()] }))] })) : (_jsx("p", { className: "text-sm text-muted-foreground", children: "MFA is not currently enabled on your account." })) }), _jsx(CardFooter, { className: "flex flex-wrap gap-2", children: enabled ? (_jsxs(_Fragment, { children: [
|
|
18
|
+
: "Add a second factor to protect your account." })] }), _jsx(CardContent, { children: isLoading ? (_jsx("p", { className: "text-sm text-muted-foreground", children: "Loading status\u2026" })) : enabled ? (_jsxs("div", { className: "space-y-2 text-sm", children: [_jsxs("div", { children: [_jsx("strong", { children: "Status:" }), " Enabled (TOTP)"] }), typeof status?.recovery_codes_remaining === "number" && (_jsxs("div", { children: [_jsx("strong", { children: "Recovery codes remaining:" }), " ", status.recovery_codes_remaining] })), typeof status?.verified_at === "number" && (_jsxs("div", { className: "text-muted-foreground", children: ["Enabled on", " ", new Date(status.verified_at).toLocaleString()] }))] })) : (_jsx("p", { className: "text-sm text-muted-foreground", children: "MFA is not currently enabled on your account." })) }), _jsx(CardFooter, { className: "flex flex-wrap gap-2", children: enabled ? (_jsxs(_Fragment, { children: [_jsxs(Button, { variant: "outline", onClick: () => setRegenerating(true), disabled: regenerating, className: "flex flex-row gap-2 flex-nowrap", children: [_jsx(KeyRound, { className: "h-4 w-4" }), "Regenerate recovery codes"] }), _jsxs(Button, { variant: "destructive", onClick: () => setRemoving(true), disabled: removing, className: "flex flex-row gap-2 flex-nowrap", children: [_jsx(ShieldOff, { className: "h-4 w-4" }), "Remove authenticator"] })] })) : (_jsxs(Button, { onClick: () => setEnrolling(true), disabled: enrolling, className: "flex flex-row gap-2 flex-nowrap", children: [_jsx(Smartphone, { className: "h-4 w-4" }), "Set up authenticator app"] })) }), enrolling && (_jsx(TotpEnrollmentDialog, { open: enrolling, onClose: () => setEnrolling(false) })), removing && status?.factor_id && (_jsx(MfaRemoveFactorDialog, { open: removing, factor_id: status.factor_id, onClose: () => setRemoving(false) })), regenerating && (_jsx(MfaRegenerateRecoveryCodesDialog, { open: regenerating, onClose: () => setRegenerating(false) }))] }));
|
|
19
19
|
};
|
|
20
20
|
export default MfaSettingsCard;
|
|
21
21
|
//# sourceMappingURL=mfa-settings-card.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mfa-settings-card.js","sourceRoot":"","sources":["../../../src/components/MfaSettingsCard/mfa-settings-card.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAA8B,MAAM,OAAO,CAAC;AAC7D,OAAO,EACL,MAAM,EACN,IAAI,EACJ,WAAW,EACX,eAAe,EACf,UAAU,EACV,UAAU,EACV,SAAS,EACT,EAAE,GACH,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,
|
|
1
|
+
{"version":3,"file":"mfa-settings-card.js","sourceRoot":"","sources":["../../../src/components/MfaSettingsCard/mfa-settings-card.tsx"],"names":[],"mappings":"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"}
|
|
@@ -31,7 +31,7 @@ export const RecoveryCodesPanel = ({ codes, onAcknowledge, className, }) => {
|
|
|
31
31
|
document.body.removeChild(a);
|
|
32
32
|
URL.revokeObjectURL(url);
|
|
33
33
|
}, [codes]);
|
|
34
|
-
return (_jsxs("div", { className: cn("space-y-3", className), children: [_jsx("div", { className: "rounded border border-amber-300 bg-amber-50 p-3 text-sm text-amber-900 dark:border-amber-800 dark:bg-amber-950 dark:text-amber-200", children: "These recovery codes are shown only once. Save them now \u2014 each can be used in place of an authenticator code if you lose your device." }), _jsx("div", { "data-testid": "mfa-recovery-codes-list", className: "grid grid-cols-2 gap-2 rounded border bg-muted p-3 font-mono text-sm", children: codes.map((code, idx) => (_jsx("div", { className: "select-all", children: code }, `${code}-${idx}`))) }), _jsxs("div", { className: "flex flex-wrap gap-2", children: [_jsxs(Button, { variant: "outline", type: "button", onClick: handleCopy, children: [_jsx(ClipboardCopy, { className: "
|
|
34
|
+
return (_jsxs("div", { className: cn("space-y-3", className), children: [_jsx("div", { className: "rounded border border-amber-300 bg-amber-50 p-3 text-sm text-amber-900 dark:border-amber-800 dark:bg-amber-950 dark:text-amber-200", children: "These recovery codes are shown only once. Save them now \u2014 each can be used in place of an authenticator code if you lose your device." }), _jsx("div", { "data-testid": "mfa-recovery-codes-list", className: "grid grid-cols-2 gap-2 rounded border bg-muted p-3 font-mono text-sm", children: codes.map((code, idx) => (_jsx("div", { className: "select-all", children: code }, `${code}-${idx}`))) }), _jsxs("div", { className: "flex flex-wrap gap-2", children: [_jsxs(Button, { variant: "outline", type: "button", onClick: handleCopy, className: "flex flex-row gap-2 flex-nowrap", children: [_jsx(ClipboardCopy, { className: "h-4 w-4" }), "Copy all"] }), _jsxs(Button, { variant: "outline", type: "button", onClick: handleDownload, className: "flex flex-row gap-2 flex-nowrap", children: [_jsx(Download, { className: "h-4 w-4" }), "Download .txt"] })] }), _jsxs("div", { className: "flex items-center gap-2 text-sm", children: [_jsx(Checkbox, { id: "mfa-recovery-codes-acknowledge", checked: acknowledged, onCheckedChange: (v) => handleAck(v === true), "data-testid": "mfa-recovery-codes-acknowledge" }), _jsx("label", { htmlFor: "mfa-recovery-codes-acknowledge", children: "I have saved these recovery codes somewhere safe." })] })] }));
|
|
35
35
|
};
|
|
36
36
|
export default RecoveryCodesPanel;
|
|
37
37
|
//# sourceMappingURL=recovery-codes-panel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recovery-codes-panel.js","sourceRoot":"","sources":["../../../src/components/RecoveryCodesPanel/recovery-codes-panel.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAAE,WAAW,EAA8B,MAAM,OAAO,CAAC;AAC1E,OAAO,EACL,MAAM,EACN,QAAQ,EACR,EAAE,GACH,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAQvD,MAAM,CAAC,MAAM,kBAAkB,GAAgC,CAAC,EAC9D,KAAK,EACL,aAAa,EACb,SAAS,GACV,EAAgB,EAAE;IACjB,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExD,MAAM,SAAS,GAAG,WAAW,CAC3B,CAAC,IAAa,EAAE,EAAE;QAChB,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,aAAa;YAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC,EACD,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACxC,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;QACtC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;YACxC,IAAI,EAAE,0BAA0B;SACjC,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;QACb,CAAC,CAAC,QAAQ,GAAG,qCAAqC,CAAC;QACnD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC,CAAC,KAAK,EAAE,CAAC;QACV,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC7B,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,aACxC,cAAK,SAAS,EAAC,oIAAoI,2JAG7I,EACN,6BACc,yBAAyB,EACrC,SAAS,EAAC,sEAAsE,YAE/E,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CACxB,cAA4B,SAAS,EAAC,YAAY,YAC/C,IAAI,IADG,GAAG,IAAI,IAAI,GAAG,EAAE,CAEpB,CACP,CAAC,GACE,EACN,eAAK,SAAS,EAAC,sBAAsB,aACnC,MAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"recovery-codes-panel.js","sourceRoot":"","sources":["../../../src/components/RecoveryCodesPanel/recovery-codes-panel.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAAE,WAAW,EAA8B,MAAM,OAAO,CAAC;AAC1E,OAAO,EACL,MAAM,EACN,QAAQ,EACR,EAAE,GACH,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAQvD,MAAM,CAAC,MAAM,kBAAkB,GAAgC,CAAC,EAC9D,KAAK,EACL,aAAa,EACb,SAAS,GACV,EAAgB,EAAE;IACjB,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExD,MAAM,SAAS,GAAG,WAAW,CAC3B,CAAC,IAAa,EAAE,EAAE;QAChB,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,aAAa;YAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC,EACD,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACxC,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;QACtC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;YACxC,IAAI,EAAE,0BAA0B;SACjC,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;QACb,CAAC,CAAC,QAAQ,GAAG,qCAAqC,CAAC;QACnD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC,CAAC,KAAK,EAAE,CAAC;QACV,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC7B,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,aACxC,cAAK,SAAS,EAAC,oIAAoI,2JAG7I,EACN,6BACc,yBAAyB,EACrC,SAAS,EAAC,sEAAsE,YAE/E,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CACxB,cAA4B,SAAS,EAAC,YAAY,YAC/C,IAAI,IADG,GAAG,IAAI,IAAI,GAAG,EAAE,CAEpB,CACP,CAAC,GACE,EACN,eAAK,SAAS,EAAC,sBAAsB,aACnC,MAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,UAAU,EACnB,SAAS,EAAC,iCAAiC,aAE3C,KAAC,aAAa,IAAC,SAAS,EAAC,SAAS,GAAG,gBAE9B,EACT,MAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,cAAc,EACvB,SAAS,EAAC,iCAAiC,aAE3C,KAAC,QAAQ,IAAC,SAAS,EAAC,SAAS,GAAG,qBAEzB,IACL,EACN,eAAK,SAAS,EAAC,iCAAiC,aAC9C,KAAC,QAAQ,IACP,EAAE,EAAC,gCAAgC,EACnC,OAAO,EAAE,YAAY,EACrB,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,IAAI,CAAC,iBACjC,gCAAgC,GAC5C,EACF,gBAAO,OAAO,EAAC,gCAAgC,kEAEvC,IACJ,IACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -3,6 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
import { useEffect, useState, } from "react";
|
|
4
4
|
import { Button, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, Input, useToast, } from "@schemavaults/ui";
|
|
5
5
|
import { useMfa } from "@schemavaults/auth-react-provider";
|
|
6
|
+
import { Check, ShieldCheck, X } from "lucide-react";
|
|
6
7
|
import { RecoveryCodesPanel } from "../RecoveryCodesPanel";
|
|
7
8
|
export const TotpEnrollmentDialog = ({ open, onClose, }) => {
|
|
8
9
|
const { enrollTotp, confirmTotpEnrollment } = useMfa();
|
|
@@ -57,7 +58,7 @@ export const TotpEnrollmentDialog = ({ open, onClose, }) => {
|
|
|
57
58
|
setSubmitting(false);
|
|
58
59
|
}
|
|
59
60
|
};
|
|
60
|
-
return (_jsx(Dialog, { open: open, onOpenChange: (v) => !v && onClose(), children: _jsxs(DialogContent, { children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: "Set up an authenticator app" }), _jsx(DialogDescription, { children: "Scan the QR code with your authenticator app, then enter the 6-digit code it generates." })] }), step === "loading" && (_jsx("p", { className: "text-sm text-muted-foreground", children: "Starting enrollment\u2026" })), step === "error" && (_jsx("p", { className: "text-sm text-destructive", children: error ?? "Unknown error" })), step === "scan" && enrollment && (_jsxs("div", { className: "space-y-3", children: [_jsx("img", { src: enrollment.qr_code_data_url, alt: "TOTP QR code", className: "mx-auto h-56 w-56", "data-testid": "mfa-enroll-qr" }), _jsxs("details", { className: "text-xs text-muted-foreground", children: [_jsx("summary", { className: "cursor-pointer", children: "Can't scan? Show secret" }), _jsx("code", { className: "mt-1 block break-all rounded bg-muted p-2 font-mono", children: enrollment.secret })] }), _jsx(Input, { inputMode: "numeric", autoComplete: "one-time-code", maxLength: 6, value: code, onChange: (e) => setCode(e.target.value.replace(/\D+/g, "")), placeholder: "123456", "data-testid": "mfa-enroll-code-input" }), error && _jsx("p", { className: "text-sm text-destructive", children: error }), _jsxs(DialogFooter, { children: [
|
|
61
|
+
return (_jsx(Dialog, { open: open, onOpenChange: (v) => !v && onClose(), children: _jsxs(DialogContent, { children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: "Set up an authenticator app" }), _jsx(DialogDescription, { children: "Scan the QR code with your authenticator app, then enter the 6-digit code it generates." })] }), step === "loading" && (_jsx("p", { className: "text-sm text-muted-foreground", children: "Starting enrollment\u2026" })), step === "error" && (_jsx("p", { className: "text-sm text-destructive", children: error ?? "Unknown error" })), step === "scan" && enrollment && (_jsxs("div", { className: "space-y-3", children: [_jsx("img", { src: enrollment.qr_code_data_url, alt: "TOTP QR code", className: "mx-auto h-56 w-56", "data-testid": "mfa-enroll-qr" }), _jsxs("details", { className: "text-xs text-muted-foreground", children: [_jsx("summary", { className: "cursor-pointer", children: "Can't scan? Show secret" }), _jsx("code", { className: "mt-1 block break-all rounded bg-muted p-2 font-mono", children: enrollment.secret })] }), _jsx(Input, { inputMode: "numeric", autoComplete: "one-time-code", maxLength: 6, value: code, onChange: (e) => setCode(e.target.value.replace(/\D+/g, "")), placeholder: "123456", "data-testid": "mfa-enroll-code-input" }), error && _jsx("p", { className: "text-sm text-destructive", children: error }), _jsxs(DialogFooter, { children: [_jsxs(Button, { variant: "outline", onClick: onClose, disabled: submitting, className: "flex flex-row gap-2 flex-nowrap", children: [_jsx(X, { className: "h-4 w-4" }), "Cancel"] }), _jsxs(Button, { onClick: handleConfirm, disabled: submitting || code.length !== 6, "data-testid": "mfa-enroll-confirm", className: "flex flex-row gap-2 flex-nowrap", children: [_jsx(ShieldCheck, { className: "h-4 w-4" }), submitting ? "Verifying…" : "Verify code"] })] })] })), step === "recovery" && (_jsxs("div", { className: "space-y-3", children: [_jsx(RecoveryCodesPanel, { codes: recoveryCodes, onAcknowledge: setAcknowledged }), _jsx(DialogFooter, { children: _jsxs(Button, { onClick: onClose, disabled: !acknowledged, "data-testid": "mfa-enroll-done", className: "flex flex-row gap-2 flex-nowrap", children: [_jsx(Check, { className: "h-4 w-4" }), "Done"] }) })] }))] }) }));
|
|
61
62
|
};
|
|
62
63
|
export default TotpEnrollmentDialog;
|
|
63
64
|
//# sourceMappingURL=totp-enrollment-dialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"totp-enrollment-dialog.js","sourceRoot":"","sources":["../../../src/components/TotpEnrollmentDialog/totp-enrollment-dialog.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"totp-enrollment-dialog.js","sourceRoot":"","sources":["../../../src/components/TotpEnrollmentDialog/totp-enrollment-dialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import useSWR from "swr";
|
|
4
|
+
import { Badge } from "@schemavaults/ui";
|
|
5
|
+
import { Loader2 } from "lucide-react";
|
|
6
|
+
import { isValidMfaFactorType, } from "@schemavaults/auth-common";
|
|
7
|
+
function factorTypeLabel(t) {
|
|
8
|
+
switch (t) {
|
|
9
|
+
case "totp":
|
|
10
|
+
return "TOTP";
|
|
11
|
+
default: {
|
|
12
|
+
const _exhaustive = t;
|
|
13
|
+
return _exhaustive;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
async function fetchFactorTypes(uid) {
|
|
18
|
+
const response = await fetch(`/api/admin/users/${uid}/mfa`, {
|
|
19
|
+
method: "GET",
|
|
20
|
+
credentials: "include",
|
|
21
|
+
});
|
|
22
|
+
if (!response.ok || response.status !== 200) {
|
|
23
|
+
throw new Error(`Failed to load MFA factor types (response status: ${response.status})`);
|
|
24
|
+
}
|
|
25
|
+
const body = await response.json();
|
|
26
|
+
if (typeof body !== "object" ||
|
|
27
|
+
!body ||
|
|
28
|
+
!("success" in body) ||
|
|
29
|
+
!body.success ||
|
|
30
|
+
!("data" in body) ||
|
|
31
|
+
typeof body.data !== "object" ||
|
|
32
|
+
!body.data ||
|
|
33
|
+
!("factor_types" in body.data) ||
|
|
34
|
+
!Array.isArray(body.data.factor_types)) {
|
|
35
|
+
throw new Error("Received failure response when fetching MFA factor types");
|
|
36
|
+
}
|
|
37
|
+
const factor_types = [];
|
|
38
|
+
for (const value of body.data.factor_types) {
|
|
39
|
+
if (isValidMfaFactorType(value)) {
|
|
40
|
+
factor_types.push(value);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return factor_types;
|
|
44
|
+
}
|
|
45
|
+
export function UserMfaFactorsCell({ uid, }) {
|
|
46
|
+
const { data, error, isLoading } = useSWR(`/api/admin/users/${uid}/mfa`, () => fetchFactorTypes(uid), {
|
|
47
|
+
revalidateOnFocus: false,
|
|
48
|
+
});
|
|
49
|
+
if (isLoading && !data) {
|
|
50
|
+
return _jsx(Loader2, { className: "h-4 w-4 animate-spin text-muted-foreground" });
|
|
51
|
+
}
|
|
52
|
+
if (error || !data) {
|
|
53
|
+
return _jsx("span", { className: "text-muted-foreground", children: "?" });
|
|
54
|
+
}
|
|
55
|
+
if (data.length === 0) {
|
|
56
|
+
return _jsx("span", { className: "text-muted-foreground", children: "\u2014" });
|
|
57
|
+
}
|
|
58
|
+
return (_jsx("div", { className: "flex flex-wrap gap-1", children: data.map((factor) => (_jsx(Badge, { variant: "secondary", children: factorTypeLabel(factor) }, factor))) }));
|
|
59
|
+
}
|
|
60
|
+
export default UserMfaFactorsCell;
|
|
61
|
+
//# sourceMappingURL=UserMfaFactorsCell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserMfaFactorsCell.js","sourceRoot":"","sources":["../../../src/components/UsersTable/UserMfaFactorsCell.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UsersTable.js","sourceRoot":"","sources":["../../../src/components/UsersTable/UsersTable.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,OAAO,EAAqB,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAkB,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAQvC,MAAM,UAAU,UAAU,CAAC,EACzB,KAAK,EACL,WAAW,GACS;IACpB,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAElC,MAAM,OAAO,GAA0B,OAAO,CAC5C,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC,EACnC,CAAC,WAAW,CAAC,CACd,CAAC;IAEF,IAAI,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;QACvB,OAAO,CACL,cAAK,SAAS,EAAC,kDAAkD,YAC/D,KAAC,OAAO,IAAC,SAAS,EAAC,wBAAwB,GAAG,GAC1C,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,SAAS,IACR,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EACpD,OAAO,EAAE,OAAO,EAChB,qBAAqB,EAAE;YACrB,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,IAAI;YACX,cAAc,EAAE,KAAK;YACrB,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,KAAK;YAClB,UAAU,EAAE,IAAI;SACjB,EACD,aAAa,EAAE,GAAiB,EAAE;YAChC,OAAO,mBAAK,CAAC;QACf,CAAC,EACD,aAAa,EAAC,MAAM,EACpB,YAAY,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,GACtC,CACH,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"UsersTable.js","sourceRoot":"","sources":["../../../src/components/UsersTable/UsersTable.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,OAAO,EAAqB,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAkB,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAQvC,MAAM,UAAU,UAAU,CAAC,EACzB,KAAK,EACL,WAAW,GACS;IACpB,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAElC,MAAM,OAAO,GAA0B,OAAO,CAC5C,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC,EACnC,CAAC,WAAW,CAAC,CACd,CAAC;IAEF,IAAI,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;QACvB,OAAO,CACL,cAAK,SAAS,EAAC,kDAAkD,YAC/D,KAAC,OAAO,IAAC,SAAS,EAAC,wBAAwB,GAAG,GAC1C,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,SAAS,IACR,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EACpD,OAAO,EAAE,OAAO,EAChB,qBAAqB,EAAE;YACrB,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,IAAI;YACX,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE,KAAK;YACrB,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,KAAK;YAClB,UAAU,EAAE,IAAI;SACjB,EACD,aAAa,EAAE,GAAiB,EAAE;YAChC,OAAO,mBAAK,CAAC;QACf,CAAC,EACD,aAAa,EAAC,MAAM,EACpB,YAAY,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,GACtC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -5,6 +5,7 @@ import { Button } from "@schemavaults/ui";
|
|
|
5
5
|
import { ClipboardCopy, ExternalLink, MoreHorizontal, ShieldCheck, ShieldX, } from "lucide-react";
|
|
6
6
|
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuTrigger, } from "@schemavaults/ui";
|
|
7
7
|
import { LocalDateTime } from "../../lib/LocalDateTime";
|
|
8
|
+
import { UserMfaFactorsCell } from "./UserMfaFactorsCell";
|
|
8
9
|
export function buildColumns(opts = {}) {
|
|
9
10
|
const { getUserHref } = opts;
|
|
10
11
|
return [
|
|
@@ -38,6 +39,12 @@ export function buildColumns(opts = {}) {
|
|
|
38
39
|
return (_jsx("div", { className: "flex items-center gap-1", children: isAdmin ? (_jsxs(_Fragment, { children: [_jsx(ShieldCheck, { className: "h-4 w-4 text-green-600" }), _jsx("span", { className: "text-green-600", children: "Yes" })] })) : (_jsxs(_Fragment, { children: [_jsx(ShieldX, { className: "h-4 w-4 text-muted-foreground" }), _jsx("span", { className: "text-muted-foreground", children: "No" })] })) }));
|
|
39
40
|
},
|
|
40
41
|
},
|
|
42
|
+
{
|
|
43
|
+
id: "mfa_factors",
|
|
44
|
+
header: "MFA",
|
|
45
|
+
cell: ({ row }) => (_jsx(UserMfaFactorsCell, { uid: row.original.uid })),
|
|
46
|
+
enableSorting: false,
|
|
47
|
+
},
|
|
41
48
|
{
|
|
42
49
|
id: "email_verified",
|
|
43
50
|
accessorKey: "email_verified",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columns.js","sourceRoot":"","sources":["../../../src/components/UsersTable/columns.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAKb,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EACL,aAAa,EACb,YAAY,EACZ,cAAc,EACd,WAAW,EACX,OAAO,GACR,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"columns.js","sourceRoot":"","sources":["../../../src/components/UsersTable/columns.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAKb,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EACL,aAAa,EACb,YAAY,EACZ,cAAc,EACd,WAAW,EACX,OAAO,GACR,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAM1D,MAAM,UAAU,YAAY,CAC1B,OAAsC,EAAE;IAExC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAE7B,OAAO;QACL;YACE,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACrB,KAAC,QAAQ,IACP,OAAO,EACL,KAAK,CAAC,wBAAwB,EAAE;oBAChC,CAAC,KAAK,CAAC,yBAAyB,EAAE,IAAI,eAAe,CAAC,EAExD,eAAe,EAAE,CAAC,KAAc,EAAE,EAAE,CAClC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC,KAAK,CAAC,gBAE/B,YAAY,GACvB,CACH;YACD,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CACjB,KAAC,QAAQ,IACP,OAAO,EAAE,GAAG,CAAC,aAAa,EAAE,EAC5B,eAAe,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,gBACrD,YAAY,GACvB,CACH;YACD,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,KAAK;SACpB;QACD;YACE,EAAE,EAAE,OAAO;YACX,WAAW,EAAE,OAAO;YACpB,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAgB,EAAE;gBAC9B,MAAM,IAAI,GAAa,GAAG,CAAC,QAAQ,CAAC;gBACpC,IAAI,WAAW,EAAE,CAAC;oBAChB,OAAO,CACL,YACE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,EACvB,SAAS,EAAC,iDAAiD,iBAC9C,wBAAwB,IAAI,CAAC,GAAG,EAAE,YAE9C,IAAI,CAAC,KAAK,GACT,CACL,CAAC;gBACJ,CAAC;gBACD,OAAO,yBAAO,IAAI,CAAC,KAAK,GAAQ,CAAC;YACnC,CAAC;SACF;QACD;YACE,EAAE,EAAE,OAAO;YACX,WAAW,EAAE,OAAO;YACpB,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAgB,EAAE;gBAC9B,MAAM,IAAI,GAAa,GAAG,CAAC,QAAQ,CAAC;gBACpC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC;gBACpC,OAAO,CACL,cAAK,SAAS,EAAC,yBAAyB,YACrC,OAAO,CAAC,CAAC,CAAC,CACT,8BACE,KAAC,WAAW,IAAC,SAAS,EAAC,wBAAwB,GAAG,EAClD,eAAM,SAAS,EAAC,gBAAgB,oBAAW,IAC1C,CACJ,CAAC,CAAC,CAAC,CACF,8BACE,KAAC,OAAO,IAAC,SAAS,EAAC,+BAA+B,GAAG,EACrD,eAAM,SAAS,EAAC,uBAAuB,mBAAU,IAChD,CACJ,GACG,CACP,CAAC;YACJ,CAAC;SACF;QACD;YACE,EAAE,EAAE,aAAa;YACjB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAgB,EAAE,CAAC,CAC/B,KAAC,kBAAkB,IAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAI,CAC9C;YACD,aAAa,EAAE,KAAK;SACrB;QACD;YACE,EAAE,EAAE,gBAAgB;YACpB,WAAW,EAAE,gBAAgB;YAC7B,MAAM,EAAE,gBAAgB;YACxB,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAgB,EAAE;gBAC9B,MAAM,IAAI,GAAa,GAAG,CAAC,QAAQ,CAAC;gBACpC,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC;gBAChD,OAAO,CACL,eACE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,uBAAuB,YAEjE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GACrB,CACR,CAAC;YACJ,CAAC;SACF;QACD;YACE,EAAE,EAAE,UAAU;YACd,WAAW,EAAE,UAAU;YACvB,MAAM,EAAE,UAAU;YAClB,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAgB,EAAE;gBAC9B,MAAM,IAAI,GAAa,GAAG,CAAC,QAAQ,CAAC;gBACpC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;gBAC1C,OAAO,CACL,eAAM,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,uBAAuB,YACnE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GACrB,CACR,CAAC;YACJ,CAAC;SACF;QACD;YACE,EAAE,EAAE,aAAa;YACjB,WAAW,EAAE,aAAa;YAC1B,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAgB,EAAE;gBAC9B,MAAM,IAAI,GAAa,GAAG,CAAC,QAAQ,CAAC;gBACpC,OAAO,yBAAO,IAAI,CAAC,WAAW,IAAI,GAAG,GAAQ,CAAC;YAChD,CAAC;SACF;QACD;YACE,EAAE,EAAE,YAAY;YAChB,WAAW,EAAE,YAAY;YACzB,MAAM,EAAE,YAAY;YACpB,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAgB,EAAE;gBAC9B,MAAM,IAAI,GAAa,GAAG,CAAC,QAAQ,CAAC;gBACpC,OAAO,KAAC,aAAa,IAAC,KAAK,EAAE,IAAI,CAAC,UAAU,GAAI,CAAC;YACnD,CAAC;SACF;QACD;YACE,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,SAAS,wBAAwB,CAAC,EAAE,GAAG,EAAE;gBAC7C,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAa,GAAG,CAAC,QAAQ,CAAC;gBACpC,MAAM,IAAI,GAAuB,WAAW;oBAC1C,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;oBACnB,CAAC,CAAC,SAAS,CAAC;gBAEd,OAAO,CACL,MAAC,YAAY,eACX,KAAC,mBAAmB,IAAC,OAAO,kBAC1B,MAAC,MAAM,IAAC,OAAO,EAAC,OAAO,EAAC,SAAS,EAAC,aAAa,aAC7C,eAAM,SAAS,EAAC,SAAS,0BAAiB,EAC1C,KAAC,cAAc,IAAC,SAAS,EAAC,SAAS,GAAG,IAC/B,GACW,EACtB,MAAC,mBAAmB,IAAC,KAAK,EAAC,KAAK,aAC9B,KAAC,iBAAiB,0BAA4B,EAC7C,IAAI,CAAC,CAAC,CAAC,CACN,KAAC,gBAAgB,IAAC,OAAO,kBACvB,aACE,IAAI,EAAE,IAAI,iBACG,gCAAgC,IAAI,CAAC,GAAG,EAAE,aAEvD,KAAC,YAAY,IAAC,SAAS,EAAC,cAAc,GAAG,qBACvC,GACa,CACpB,CAAC,CAAC,CAAC,IAAI,EACR,MAAC,gBAAgB,IACf,OAAO,EAAE,KAAK,EAAE,CAAC,EAAiB,EAAE;wCAClC,CAAC,CAAC,cAAc,EAAE,CAAC;wCACnB,MAAM,GAAG,GAAW,IAAI,CAAC,GAAG,CAAC;wCAC7B,IAAI,CAAC;4CACH,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;gDAC5B,MAAM,IAAI,KAAK,CACb,0DAA0D,CAC3D,CAAC;4CACJ,CAAC;4CACD,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;wCAC3C,CAAC;wCAAC,OAAO,CAAU,EAAE,CAAC;4CACpB,KAAK,CAAC;gDACJ,KAAK,EAAE,sCAAsC;gDAC7C,WAAW,EACT,CAAC,YAAY,KAAK;oDAChB,CAAC,CAAC,CAAC,CAAC,OAAO;oDACX,CAAC,CAAC,gCAAgC;6CACvC,CAAC,CAAC;4CACH,OAAO;wCACT,CAAC;wCAED,KAAK,CAAC;4CACJ,KAAK,EAAE,2CAA2C;4CAClD,WAAW,EAAE,oCAAoC,GAAG,wBAAwB;yCAC7E,CAAC,CAAC;wCACH,OAAO;oCACT,CAAC,aAED,KAAC,aAAa,IAAC,SAAS,EAAC,cAAc,GAAG,qBACzB,EACnB,MAAC,gBAAgB,IACf,OAAO,EAAE,KAAK,EAAE,CAAC,EAAiB,EAAE;wCAClC,CAAC,CAAC,cAAc,EAAE,CAAC;wCACnB,MAAM,KAAK,GAAW,IAAI,CAAC,KAAK,CAAC;wCACjC,IAAI,CAAC;4CACH,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;gDAC5B,MAAM,IAAI,KAAK,CACb,0DAA0D,CAC3D,CAAC;4CACJ,CAAC;4CACD,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;wCAC7C,CAAC;wCAAC,OAAO,CAAU,EAAE,CAAC;4CACpB,KAAK,CAAC;gDACJ,KAAK,EAAE,oCAAoC;gDAC3C,WAAW,EACT,CAAC,YAAY,KAAK;oDAChB,CAAC,CAAC,CAAC,CAAC,OAAO;oDACX,CAAC,CAAC,gCAAgC;6CACvC,CAAC,CAAC;4CACH,OAAO;wCACT,CAAC;wCAED,KAAK,CAAC;4CACJ,KAAK,EAAE,yCAAyC;4CAChD,WAAW,EAAE,oCAAoC,KAAK,wBAAwB;yCAC/E,CAAC,CAAC;wCACH,OAAO;oCACT,CAAC,aAED,KAAC,aAAa,IAAC,SAAS,EAAC,cAAc,GAAG,mBACzB,IACC,IACT,CAChB,CAAC;YACJ,CAAC;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAA0B,YAAY,EAAE,CAAC"}
|
package/package.json
CHANGED