forked from Silverfish/proton-bridge
GODT-2042: fix setup guide not always showing on first login.
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@ -185,11 +185,10 @@ message User {
|
||||
string avatarText = 3;
|
||||
UserState state = 4;
|
||||
bool splitMode = 5;
|
||||
bool setupGuideSeen = 6;
|
||||
int64 usedBytes = 7;
|
||||
int64 totalBytes = 8;
|
||||
bytes password = 9;
|
||||
repeated string addresses = 10;
|
||||
int64 usedBytes = 6;
|
||||
int64 totalBytes = 7;
|
||||
bytes password = 8;
|
||||
repeated string addresses = 9;
|
||||
}
|
||||
|
||||
message UserSplitModeRequest {
|
||||
@ -290,6 +289,7 @@ message LoginTwoPasswordsRequestedEvent {}
|
||||
|
||||
message LoginFinishedEvent {
|
||||
string userID = 1;
|
||||
bool wasSignedOut = 2;
|
||||
}
|
||||
|
||||
//**********************************************************
|
||||
|
||||
@ -57,8 +57,8 @@ func NewLoginTwoPasswordsRequestedEvent() *StreamEvent {
|
||||
return loginEvent(&LoginEvent{Event: &LoginEvent_TwoPasswordRequested{}})
|
||||
}
|
||||
|
||||
func NewLoginFinishedEvent(userID string) *StreamEvent {
|
||||
return loginEvent(&LoginEvent{Event: &LoginEvent_Finished{Finished: &LoginFinishedEvent{UserID: userID}}})
|
||||
func NewLoginFinishedEvent(userID string, wasSignedOut bool) *StreamEvent {
|
||||
return loginEvent(&LoginEvent{Event: &LoginEvent_Finished{Finished: &LoginFinishedEvent{UserID: userID, WasSignedOut: wasSignedOut}}})
|
||||
}
|
||||
|
||||
func NewLoginAlreadyLoggedInEvent(userID string) *StreamEvent {
|
||||
|
||||
@ -390,6 +390,8 @@ func (s *Service) loginClean() {
|
||||
func (s *Service) finishLogin() {
|
||||
defer s.loginClean()
|
||||
|
||||
wasSignedOut := s.bridge.HasUser(s.auth.UserID)
|
||||
|
||||
if len(s.password) == 0 || s.auth.UID == "" || s.authClient == nil {
|
||||
s.log.
|
||||
WithField("hasPass", len(s.password) != 0).
|
||||
@ -415,7 +417,7 @@ func (s *Service) finishLogin() {
|
||||
|
||||
s.log.WithField("userID", userID).Debug("Login finished")
|
||||
|
||||
_ = s.SendEvent(NewLoginFinishedEvent(userID))
|
||||
_ = s.SendEvent(NewLoginFinishedEvent(userID, wasSignedOut))
|
||||
}
|
||||
|
||||
func (s *Service) waitForUserChangeDone(eventCh <-chan events.Event, userID string) {
|
||||
|
||||
@ -126,7 +126,7 @@ func (s *Service) StartEventTest() error { //nolint:funlen
|
||||
NewLoginError(LoginErrorType_FREE_USER, "error"),
|
||||
NewLoginTfaRequestedEvent(dummyAddress),
|
||||
NewLoginTwoPasswordsRequestedEvent(),
|
||||
NewLoginFinishedEvent("userID"),
|
||||
NewLoginFinishedEvent("userID", false),
|
||||
NewLoginAlreadyLoggedInEvent("userID"),
|
||||
|
||||
// update
|
||||
|
||||
@ -61,16 +61,15 @@ func getInitials(fullName string) string {
|
||||
// grpcUserFromInfo converts a bridge user to a gRPC user.
|
||||
func grpcUserFromInfo(user bridge.UserInfo) *User {
|
||||
return &User{
|
||||
Id: user.UserID,
|
||||
Username: user.Username,
|
||||
AvatarText: getInitials(user.Username),
|
||||
State: userStateToGrpc(user.State),
|
||||
SplitMode: user.AddressMode == vault.SplitMode,
|
||||
SetupGuideSeen: true, // users listed have already seen the setup guide.
|
||||
UsedBytes: int64(user.UsedSpace),
|
||||
TotalBytes: int64(user.MaxSpace),
|
||||
Password: user.BridgePass,
|
||||
Addresses: user.Addresses,
|
||||
Id: user.UserID,
|
||||
Username: user.Username,
|
||||
AvatarText: getInitials(user.Username),
|
||||
State: userStateToGrpc(user.State),
|
||||
SplitMode: user.AddressMode == vault.SplitMode,
|
||||
UsedBytes: int64(user.UsedSpace),
|
||||
TotalBytes: int64(user.MaxSpace),
|
||||
Password: user.BridgePass,
|
||||
Addresses: user.Addresses,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user