fix(BRIDGE-424): patch second password prompt

This commit is contained in:
Atanas Janeshliev
2025-09-30 12:25:28 +02:00
parent cd375c81fa
commit ac3d7375f7
4 changed files with 18 additions and 1 deletions

View File

@ -1277,6 +1277,10 @@ QtObject {
function onLoginFidoError(errorMsg) {
root.touchFidoKey.reset();
}
function onLogin2PasswordRequested(_) {
root.touchFidoKey.reset();
}
target: Backend
}
}

View File

@ -133,7 +133,8 @@ FocusScope {
errorLabel.text = qsTr("Incorrect login credentials. Please try again.");
}
function onLogin2PasswordRequested(username) {
console.assert(stackLayout.currentIndex === Login.RootStack.Login || stackLayout.currentIndex === Login.RootStack.TOTP, "Unexpected login2PasswordRequested");
console.assert(stackLayout.currentIndex === Login.RootStack.Login || stackLayout.currentIndex === Login.RootStack.FIDO || stackLayout.currentIndex === Login.RootStack.TOTP, "Unexpected login2PasswordRequested");
fidoLayout.reset();
stackLayout.currentIndex = Login.RootStack.MailboxPassword;
mailboxPasswordUsernameLabel.text = username;
secondPasswordTextField.focus = true;

View File

@ -25,6 +25,7 @@ import (
"fmt"
"github.com/ProtonMail/gluon/async"
"github.com/ProtonMail/go-proton-api"
"github.com/ProtonMail/proton-bridge/v3/internal/fido"
"github.com/keys-pub/go-libfido2"
"google.golang.org/protobuf/types/known/emptypb"
@ -104,6 +105,11 @@ func (s *Service) LoginFido(_ context.Context, login *LoginRequest) (*emptypb.Em
return
}
if s.auth.PasswordMode == proton.TwoPasswordMode {
_ = s.SendEvent(NewLoginTwoPasswordsRequestedEvent(login.Username))
return
}
s.finishLogin()
}()

View File

@ -22,6 +22,7 @@ package grpc
import (
"context"
"fmt"
"github.com/ProtonMail/go-proton-api"
"github.com/ProtonMail/gluon/async"
"github.com/ProtonMail/proton-bridge/v3/internal/fido"
@ -46,6 +47,11 @@ func (s *Service) LoginFido(_ context.Context, login *LoginRequest) (*emptypb.Em
return
}
if s.auth.PasswordMode == proton.TwoPasswordMode {
_ = s.SendEvent(NewLoginTwoPasswordsRequestedEvent(login.Username))
return
}
s.finishLogin()
}()