feat(GODT-2610): re-use previous password when removing and adding back account.

This commit is contained in:
Xavier Michelon
2023-05-04 19:57:17 +02:00
parent 01aa19edff
commit eee2c73a61
11 changed files with 161 additions and 6 deletions

View File

@ -28,6 +28,8 @@ import (
"github.com/ProtonMail/go-proton-api"
"github.com/ProtonMail/gopenpgp/v2/crypto"
"github.com/ProtonMail/proton-bridge/v3/internal/bridge"
"github.com/ProtonMail/proton-bridge/v3/internal/vault"
"github.com/ProtonMail/proton-bridge/v3/pkg/algo"
"github.com/bradenaw/juniper/iterator"
"github.com/bradenaw/juniper/xslices"
"github.com/cucumber/godog"
@ -426,6 +428,37 @@ func (s *scenario) userHasTelemetrySetTo(username string, telemetry int) error {
})
}
func (s *scenario) bridgePasswordOfUserIsChangedTo(username, bridgePassword string) error {
b, err := algo.B64RawDecode([]byte(bridgePassword))
if err != nil {
return errors.New("the password is not base64 encoded")
}
var setErr error
if err := s.t.vault.GetUser(
s.t.getUserByName(username).getUserID(),
func(user *vault.User) { setErr = user.SetBridgePass(b) },
); err != nil {
return err
}
return setErr
}
func (s *scenario) bridgePasswordOfUserIsEqualTo(username, bridgePassword string) error {
userInfo, err := s.t.bridge.QueryUserInfo(username)
if err != nil {
return err
}
readPassword := string(userInfo.BridgePass)
if readPassword != bridgePassword {
return fmt.Errorf("bridge password mismatch, expected '%v', got '%v'", bridgePassword, readPassword)
}
return nil
}
func (s *scenario) addAdditionalAddressToAccount(username, address string, disabled bool) error {
userID := s.t.getUserByName(username).getUserID()