fix(@desktop/onboarding): getting back to login screen doesn't check if inserted keycard match the selected user - fixed

This commit is contained in:
Sale Djenic 2023-09-22 12:35:01 +02:00 committed by saledjenic
parent f7db677c95
commit b97e1fc8da
3 changed files with 14 additions and 8 deletions

View File

@ -35,11 +35,11 @@ method resolveKeycardNextState*(self: LoginKeycardEnterPinState, keycardFlowType
if not state.isNil:
return state
if self.flowType == FlowType.AppLogin:
if keycardFlowType == ResponseTypeValueKeycardFlowResult and
keycardEvent.error.len == 0:
if not controller.keyUidMatchSelectedLoginAccount(keycardEvent.keyUid):
controller.setPin("")
return createState(StateType.LoginKeycardWrongKeycard, self.flowType, nil)
if keycardFlowType == ResponseTypeValueKeycardFlowResult and
keycardEvent.error.len == 0:
controller.setKeycardEvent(keycardEvent)
return createState(StateType.LoginKeycardPinVerified, self.flowType, nil)
if keycardFlowType == ResponseTypeValueEnterPIN and

View File

@ -37,6 +37,9 @@ method resolveKeycardNextState*(self: LoginKeycardWrongPinState, keycardFlowType
if not state.isNil:
return state
if self.flowType == FlowType.AppLogin:
if not controller.keyUidMatchSelectedLoginAccount(keycardEvent.keyUid):
controller.setPin("")
return createState(StateType.LoginKeycardWrongKeycard, self.flowType, nil)
if keycardFlowType == ResponseTypeValueEnterPIN and
keycardEvent.error.len > 0 and
keycardEvent.error == RequestParamPIN:

View File

@ -27,6 +27,9 @@ proc ensureReaderAndCardPresenceAndResolveNextLoginState*(state: State, keycardF
if state.flowType == FlowType.AppLogin:
if keycardFlowType == ResponseTypeValueKeycardFlowResult and
keycardEvent.error.len == 0:
if not controller.keyUidMatchSelectedLoginAccount(keycardEvent.keyUid):
controller.setPin("")
return createState(StateType.LoginKeycardWrongKeycard, state.flowType, nil)
controller.setKeycardEvent(keycardEvent)
return createState(StateType.LoginKeycardPinVerified, state.flowType, nil)
if keycardFlowType == ResponseTypeValueEnterPIN: