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) { function onLoginFidoError(errorMsg) {
root.touchFidoKey.reset(); root.touchFidoKey.reset();
} }
function onLogin2PasswordRequested(_) {
root.touchFidoKey.reset();
}
target: Backend target: Backend
} }
} }

View File

@ -133,7 +133,8 @@ FocusScope {
errorLabel.text = qsTr("Incorrect login credentials. Please try again."); errorLabel.text = qsTr("Incorrect login credentials. Please try again.");
} }
function onLogin2PasswordRequested(username) { 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; stackLayout.currentIndex = Login.RootStack.MailboxPassword;
mailboxPasswordUsernameLabel.text = username; mailboxPasswordUsernameLabel.text = username;
secondPasswordTextField.focus = true; secondPasswordTextField.focus = true;

View File

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

View File

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