forked from Silverfish/proton-bridge
GODT-1815: Combined/Split mode
This commit is contained in:
@ -23,6 +23,7 @@ import (
|
||||
|
||||
"github.com/ProtonMail/proton-bridge/v2/internal/bridge"
|
||||
"github.com/ProtonMail/proton-bridge/v2/internal/constants"
|
||||
"github.com/ProtonMail/proton-bridge/v2/internal/vault"
|
||||
"github.com/abiosoft/ishell"
|
||||
)
|
||||
|
||||
@ -39,7 +40,7 @@ func (f *frontendCLI) listAccounts(c *ishell.Context) {
|
||||
connected = "connected"
|
||||
}
|
||||
mode := "split"
|
||||
if user.AddressMode == bridge.CombinedMode {
|
||||
if user.AddressMode == vault.CombinedMode {
|
||||
mode = "combined"
|
||||
}
|
||||
f.Printf(spacing, idx, user.Username, connected, mode)
|
||||
@ -58,7 +59,7 @@ func (f *frontendCLI) showAccountInfo(c *ishell.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
if user.AddressMode == bridge.CombinedMode {
|
||||
if user.AddressMode == vault.CombinedMode {
|
||||
f.showAccountAddressInfo(user, user.Addresses[0])
|
||||
} else {
|
||||
for _, address := range user.Addresses {
|
||||
@ -225,19 +226,19 @@ func (f *frontendCLI) changeMode(c *ishell.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
var targetMode bridge.AddressMode
|
||||
var targetMode vault.AddressMode
|
||||
|
||||
if user.AddressMode == bridge.CombinedMode {
|
||||
targetMode = bridge.SplitMode
|
||||
if user.AddressMode == vault.CombinedMode {
|
||||
targetMode = vault.SplitMode
|
||||
} else {
|
||||
targetMode = bridge.CombinedMode
|
||||
targetMode = vault.CombinedMode
|
||||
}
|
||||
|
||||
if !f.yesNoQuestion("Are you sure you want to change the mode for account " + bold(user.Username) + " to " + bold(targetMode)) {
|
||||
return
|
||||
}
|
||||
|
||||
if err := f.bridge.SetAddressMode(user.UserID, targetMode); err != nil {
|
||||
if err := f.bridge.SetAddressMode(context.Background(), user.UserID, targetMode); err != nil {
|
||||
f.printAndLogError("Cannot switch address mode:", err)
|
||||
}
|
||||
|
||||
|
||||
@ -296,7 +296,7 @@ func (f *frontendCLI) watchEvents() {
|
||||
|
||||
f.notifyLogout(user.Username)
|
||||
|
||||
case events.UserAddressChanged:
|
||||
case events.UserAddressUpdated:
|
||||
user, err := f.bridge.GetUserInfo(event.UserID)
|
||||
if err != nil {
|
||||
return
|
||||
@ -305,7 +305,7 @@ func (f *frontendCLI) watchEvents() {
|
||||
f.Printf("Address changed for %s. You may need to reconfigure your email client.\n", user.Username)
|
||||
|
||||
case events.UserAddressDeleted:
|
||||
f.notifyLogout(event.Address)
|
||||
f.notifyLogout(event.Email)
|
||||
|
||||
case events.SyncStarted:
|
||||
user, err := f.bridge.GetUserInfo(event.UserID)
|
||||
|
||||
@ -228,13 +228,13 @@ func (s *Service) watchEvents() {
|
||||
_ = s.SendEvent(NewShowMainWindowEvent())
|
||||
|
||||
case events.UserAddressCreated:
|
||||
_ = s.SendEvent(NewMailAddressChangeEvent(event.Address))
|
||||
_ = s.SendEvent(NewMailAddressChangeEvent(event.Email))
|
||||
|
||||
case events.UserAddressChanged:
|
||||
_ = s.SendEvent(NewMailAddressChangeEvent(event.Address))
|
||||
case events.UserAddressUpdated:
|
||||
_ = s.SendEvent(NewMailAddressChangeEvent(event.Email))
|
||||
|
||||
case events.UserAddressDeleted:
|
||||
_ = s.SendEvent(NewMailAddressChangeLogoutEvent(event.Address))
|
||||
_ = s.SendEvent(NewMailAddressChangeLogoutEvent(event.Email))
|
||||
|
||||
case events.UserChanged:
|
||||
_ = s.SendEvent(NewUserChangedEvent(event.UserID))
|
||||
|
||||
@ -20,7 +20,7 @@ package grpc
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/ProtonMail/proton-bridge/v2/internal/bridge"
|
||||
"github.com/ProtonMail/proton-bridge/v2/internal/vault"
|
||||
"github.com/sirupsen/logrus"
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/status"
|
||||
@ -74,15 +74,15 @@ func (s *Service) SetUserSplitMode(ctx context.Context, splitMode *UserSplitMode
|
||||
defer s.panicHandler.HandlePanic()
|
||||
defer func() { _ = s.SendEvent(NewUserToggleSplitModeFinishedEvent(splitMode.UserID)) }()
|
||||
|
||||
var targetMode bridge.AddressMode
|
||||
var targetMode vault.AddressMode
|
||||
|
||||
if splitMode.Active && user.AddressMode == bridge.CombinedMode {
|
||||
targetMode = bridge.SplitMode
|
||||
} else if !splitMode.Active && user.AddressMode == bridge.SplitMode {
|
||||
targetMode = bridge.CombinedMode
|
||||
if splitMode.Active && user.AddressMode == vault.CombinedMode {
|
||||
targetMode = vault.SplitMode
|
||||
} else if !splitMode.Active && user.AddressMode == vault.SplitMode {
|
||||
targetMode = vault.CombinedMode
|
||||
}
|
||||
|
||||
if err := s.bridge.SetAddressMode(user.UserID, targetMode); err != nil {
|
||||
if err := s.bridge.SetAddressMode(context.Background(), user.UserID, targetMode); err != nil {
|
||||
logrus.WithError(err).Error("Failed to set address mode")
|
||||
}
|
||||
}()
|
||||
|
||||
@ -22,6 +22,7 @@ import (
|
||||
"strings"
|
||||
|
||||
"github.com/ProtonMail/proton-bridge/v2/internal/bridge"
|
||||
"github.com/ProtonMail/proton-bridge/v2/internal/vault"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
@ -64,7 +65,7 @@ func grpcUserFromInfo(user bridge.UserInfo) *User {
|
||||
Username: user.Username,
|
||||
AvatarText: getInitials(user.Username),
|
||||
LoggedIn: user.Connected,
|
||||
SplitMode: user.AddressMode == bridge.SplitMode,
|
||||
SplitMode: user.AddressMode == vault.SplitMode,
|
||||
SetupGuideSeen: true, // users listed have already seen the setup guide.
|
||||
UsedBytes: int64(user.UsedSpace),
|
||||
TotalBytes: int64(user.MaxSpace),
|
||||
|
||||
Reference in New Issue
Block a user