Skip to content

Commit ee4afc7

Browse files
release-v-1-15-0 (#15)
* fix password change for non sso * fixing 2fa totp
1 parent 88daed1 commit ee4afc7

File tree

3 files changed

+15
-3
lines changed

3 files changed

+15
-3
lines changed

pages/login.tsx

+13-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ const Login: NextPage = () => {
2020
const [oidcFlow, setOidcFlow] = useState<LoginFlow>();
2121
const [selectedRole, setSelectedRole] = useState<string | undefined>('engineer');
2222
const [isAccLinkageRequested, setIsAccLinkageRequested] = useState(false);
23-
23+
const [totpFlow, setTotpFlow] = useState<LoginFlow>();
2424
// Get ?flow=... from the URL
2525
const router = useRouter()
2626
const {
@@ -90,6 +90,13 @@ const Login: NextPage = () => {
9090
submitNode.meta.label.text = "Proceed"
9191
}
9292

93+
if (initialFlow.ui.nodes.some((node: any) => node.group === "totp")) {
94+
const totcData = JSON.parse(JSON.stringify(flowData));
95+
totcData.ui.nodes = totcData.ui.nodes.filter((node: any) => node.group == "totp" || node.group == "default");
96+
// prevent duplicate messages
97+
totcData.ui.messages = [];
98+
setTotpFlow(totcData);
99+
}
93100

94101
if (flowData.ui.nodes.some((node: any) => node.group === "oidc")) {
95102
const oidcData = JSON.parse(JSON.stringify(flowData));
@@ -164,7 +171,12 @@ const Login: NextPage = () => {
164171
<div className="divider-outer"><span className="divider">Or</span></div>
165172
<Flow onSubmit={onSubmit} flow={oidcFlow} only="oidc" />
166173
</> : null}
174+
{totpFlow ?
175+
<>
176+
<Flow onSubmit={onSubmit} flow={totpFlow} only="totp" />
177+
</> : null}
167178
</div>) : (<>
179+
168180
<fieldset>
169181
<span className="typography-h3">
170182
Select role

pages/settings.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ const Settings: NextPage = () => {
6363
setChangedFlow(initialFlow)
6464

6565
//prevent password change option display if sso
66-
if (initialFlow.identity.metadata_public?.registration_scope?.provider_id != "kern.ai") {
66+
if (["microsoft", "google"].includes(initialFlow.identity.metadata_public?.registration_scope?.provider_id)) {
6767
initialFlow.ui.nodes = initialFlow.ui.nodes.filter((node: UiNode) => node.group !== "password");
6868
setIsOidc(true);
6969
}

pkg/errors.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ export function handleGetFlowError<S>(
4141
"A security violation was detected, please fill out the form again.",
4242
)
4343
resetFlow(undefined)
44-
await router.push("/welcome" + flowType)
44+
await router.push("/auth/" + flowType)
4545
return
4646
case "security_identity_mismatch":
4747
// The requested item was intended for someone else. Let's request a new flow...

0 commit comments

Comments
 (0)