mirror of
https://github.com/ProtonMail/proton-bridge.git
synced 2025-12-17 23:56:56 +00:00
GODT-2022: Fix change between address modes
This commit is contained in:
@ -265,7 +265,16 @@ func (f *frontendCLI) changeMode(c *ishell.Context) {
|
||||
targetMode = vault.CombinedMode
|
||||
}
|
||||
|
||||
if !f.yesNoQuestion("Are you sure you want to change the mode for account " + bold(user.Username) + " to " + bold(targetMode)) {
|
||||
var targetModeName string
|
||||
|
||||
switch targetMode {
|
||||
case vault.CombinedMode:
|
||||
targetModeName = "combined"
|
||||
case vault.SplitMode:
|
||||
targetModeName = "split"
|
||||
}
|
||||
|
||||
if !f.yesNoQuestion("Are you sure you want to change the mode for account " + bold(user.Username) + " to " + bold(targetModeName)) {
|
||||
return
|
||||
}
|
||||
|
||||
@ -273,7 +282,7 @@ func (f *frontendCLI) changeMode(c *ishell.Context) {
|
||||
f.printAndLogError("Cannot switch address mode:", err)
|
||||
}
|
||||
|
||||
f.Printf("Address mode for account %s changed to %s\n", user.Username, targetMode)
|
||||
f.Printf("Address mode for account %s changed to %s\n", user.Username, targetModeName)
|
||||
}
|
||||
|
||||
func (f *frontendCLI) configureAppleMail(c *ishell.Context) {
|
||||
|
||||
@ -259,6 +259,9 @@ func (s *Service) watchEvents() { //nolint:funlen
|
||||
case events.UserDeleted:
|
||||
_ = s.SendEvent(NewUserChangedEvent(event.UserID))
|
||||
|
||||
case events.AddressModeChanged:
|
||||
_ = s.SendEvent(NewUserChangedEvent(event.UserID))
|
||||
|
||||
case events.UserDeauth:
|
||||
if user, err := s.bridge.GetUserInfo(event.UserID); err != nil {
|
||||
s.log.WithError(err).Error("Failed to get user info")
|
||||
|
||||
@ -21,7 +21,6 @@ import (
|
||||
"context"
|
||||
|
||||
"github.com/ProtonMail/proton-bridge/v2/internal/vault"
|
||||
"github.com/sirupsen/logrus"
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/status"
|
||||
"google.golang.org/protobuf/types/known/emptypb"
|
||||
@ -76,15 +75,21 @@ func (s *Service) SetUserSplitMode(ctx context.Context, splitMode *UserSplitMode
|
||||
|
||||
var targetMode vault.AddressMode
|
||||
|
||||
if splitMode.Active && user.AddressMode == vault.CombinedMode {
|
||||
if splitMode.Active {
|
||||
targetMode = vault.SplitMode
|
||||
} else if !splitMode.Active && user.AddressMode == vault.SplitMode {
|
||||
} else {
|
||||
targetMode = vault.CombinedMode
|
||||
}
|
||||
|
||||
if err := s.bridge.SetAddressMode(context.Background(), user.UserID, targetMode); err != nil {
|
||||
logrus.WithError(err).Error("Failed to set address mode")
|
||||
if user.AddressMode == targetMode {
|
||||
return
|
||||
}
|
||||
|
||||
if err := s.bridge.SetAddressMode(context.Background(), user.UserID, targetMode); err != nil {
|
||||
s.log.WithError(err).Error("Failed to set address mode")
|
||||
}
|
||||
|
||||
s.log.WithField("userID", user.UserID).WithField("mode", targetMode).Info("Address mode changed")
|
||||
}()
|
||||
|
||||
return &emptypb.Empty{}, nil
|
||||
@ -101,7 +106,7 @@ func (s *Service) LogoutUser(ctx context.Context, userID *wrapperspb.StringValue
|
||||
defer s.panicHandler.HandlePanic()
|
||||
|
||||
if err := s.bridge.LogoutUser(context.Background(), userID.Value); err != nil {
|
||||
logrus.WithError(err).Error("Failed to log user out")
|
||||
s.log.WithError(err).Error("Failed to log user out")
|
||||
}
|
||||
}()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user