forked from Silverfish/proton-bridge
fix(BRIDGE-108): fixed GetInitials when empty username is passed; we now overwrite the username in the vault if its value changed, each time we refresh user auth
This commit is contained in:
@ -19,6 +19,7 @@ package vault
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/bradenaw/juniper/xslices"
|
||||
"golang.org/x/exp/slices"
|
||||
@ -37,6 +38,10 @@ func (user *User) Username() string {
|
||||
return user.vault.getUser(user.userID).Username
|
||||
}
|
||||
|
||||
func (user *User) usernameUnsafe() string {
|
||||
return user.vault.getUserUnsafe(user.userID).Username
|
||||
}
|
||||
|
||||
// PrimaryEmail returns the user's primary email address.
|
||||
func (user *User) PrimaryEmail() string {
|
||||
return user.vault.getUser(user.userID).PrimaryEmail
|
||||
@ -242,3 +247,15 @@ func (user *User) SetShouldSync(shouldResync bool) error {
|
||||
func (user *User) GetShouldResync() bool {
|
||||
return user.vault.getUser(user.userID).ShouldResync
|
||||
}
|
||||
|
||||
// updateUsernameUnsafe - updates the username of the relevant user, provided that the new username is not empty
|
||||
// and differs from the previous. Writes are not performed if this case is not met.
|
||||
// Should only be called from contexts where the vault mutex is already locked.
|
||||
func (user *User) updateUsernameUnsafe(username string) error {
|
||||
if strings.TrimSpace(username) == "" || user.usernameUnsafe() == username {
|
||||
return nil
|
||||
}
|
||||
return user.vault.modUserUnsafe(user.userID, func(userData *UserData) {
|
||||
userData.Username = username
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user