mirror of
https://github.com/status-im/status-desktop.git
synced 2025-02-04 02:34:52 +00:00
fix(@desktop/onboarding): getting back to login screen doesn't check if inserted keycard match the selected user - fixed
This commit is contained in:
parent
f7db677c95
commit
b97e1fc8da
@ -35,11 +35,11 @@ method resolveKeycardNextState*(self: LoginKeycardEnterPinState, 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 == ResponseTypeValueKeycardFlowResult and
|
||||
keycardEvent.error.len == 0:
|
||||
if not controller.keyUidMatchSelectedLoginAccount(keycardEvent.keyUid):
|
||||
controller.setPin("")
|
||||
return createState(StateType.LoginKeycardWrongKeycard, self.flowType, nil)
|
||||
controller.setKeycardEvent(keycardEvent)
|
||||
return createState(StateType.LoginKeycardPinVerified, self.flowType, nil)
|
||||
if keycardFlowType == ResponseTypeValueEnterPIN and
|
||||
|
@ -25,31 +25,34 @@ method getNextQuaternaryState*(self: LoginKeycardWrongPinState, controller: Cont
|
||||
if self.flowType == FlowType.AppLogin:
|
||||
controller.cancelCurrentFlow()
|
||||
return createState(StateType.WelcomeOldStatusUser, self.flowType, self)
|
||||
|
||||
|
||||
method getNextQuinaryState*(self: LoginKeycardWrongPinState, controller: Controller): State =
|
||||
if self.flowType == FlowType.AppLogin:
|
||||
controller.cancelCurrentFlow()
|
||||
return createState(StateType.LostKeycardOptions, self.flowType, self)
|
||||
|
||||
method resolveKeycardNextState*(self: LoginKeycardWrongPinState, keycardFlowType: string, keycardEvent: KeycardEvent,
|
||||
method resolveKeycardNextState*(self: LoginKeycardWrongPinState, keycardFlowType: string, keycardEvent: KeycardEvent,
|
||||
controller: Controller): State =
|
||||
let state = ensureReaderAndCardPresenceLogin(self, keycardFlowType, keycardEvent, controller)
|
||||
if not state.isNil:
|
||||
return state
|
||||
if self.flowType == FlowType.AppLogin:
|
||||
if keycardFlowType == ResponseTypeValueEnterPIN and
|
||||
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:
|
||||
controller.setRemainingAttempts(keycardEvent.pinRetries)
|
||||
if keycardEvent.pinRetries > 0:
|
||||
return nil
|
||||
return createState(StateType.LoginKeycardMaxPinRetriesReached, self.flowType, nil)
|
||||
if keycardFlowType == ResponseTypeValueEnterPUK and
|
||||
if keycardFlowType == ResponseTypeValueEnterPUK and
|
||||
keycardEvent.error.len == 0:
|
||||
if keycardEvent.pinRetries == 0 and keycardEvent.pukRetries > 0:
|
||||
return createState(StateType.LoginKeycardMaxPinRetriesReached, self.flowType, nil)
|
||||
return nil
|
||||
if keycardFlowType == ResponseTypeValueKeycardFlowResult and
|
||||
if keycardFlowType == ResponseTypeValueKeycardFlowResult and
|
||||
keycardEvent.error.len == 0:
|
||||
controller.setKeycardEvent(keycardEvent)
|
||||
return createState(StateType.LoginKeycardPinVerified, self.flowType, nil)
|
@ -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:
|
||||
|
Loading…
x
Reference in New Issue
Block a user