Keep recent remote passwords masked
This commit is contained in:
@@ -261,7 +261,7 @@ func newUIWithState(mode string, sess appstate.CurrentSession, paths statePaths)
|
||||
remoteBaseURL: widget.Editor{SingleLine: true, Submit: false},
|
||||
remotePath: widget.Editor{SingleLine: true, Submit: false},
|
||||
remoteUsername: widget.Editor{SingleLine: true, Submit: false},
|
||||
remotePassword: widget.Editor{SingleLine: true, Submit: false},
|
||||
remotePassword: widget.Editor{SingleLine: true, Submit: false, Mask: '•'},
|
||||
masterPassword: widget.Editor{SingleLine: true, Submit: false},
|
||||
keyFilePath: widget.Editor{SingleLine: true, Submit: false},
|
||||
entryID: widget.Editor{SingleLine: true, Submit: false},
|
||||
@@ -1333,6 +1333,7 @@ func (u *ui) layout(gtx layout.Context) layout.Dimensions {
|
||||
u.remotePath.SetText(record.Path)
|
||||
u.remoteUsername.SetText(record.Username)
|
||||
u.remotePassword.SetText(record.Password)
|
||||
u.remotePassword.Mask = '•'
|
||||
u.rememberRemoteAuth.Value = strings.TrimSpace(record.Username) != "" || record.Password != ""
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,8 +12,10 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"gioui.org/layout"
|
||||
"gioui.org/io/key"
|
||||
"gioui.org/unit"
|
||||
"gioui.org/widget"
|
||||
|
||||
"git.julianfamily.org/keepassgo/clipboard"
|
||||
"git.julianfamily.org/keepassgo/passwords"
|
||||
@@ -2001,6 +2003,37 @@ func TestUIRecentRemoteConnectionsPersistAndReload(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestSelectingRecentRemoteConnectionKeepsPasswordMasked(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
u := newUIWithSession("desktop", &session.Manager{})
|
||||
u.recentRemotes = []recentRemoteRecord{{
|
||||
BaseURL: "https://dav.example.com",
|
||||
Path: "vaults/home.kdbx",
|
||||
Username: "alice",
|
||||
Password: "secret-1",
|
||||
}}
|
||||
u.recentRemoteClicks = make([]widget.Clickable, 1)
|
||||
|
||||
u.remotePassword.Mask = 0
|
||||
u.recentRemoteClicks[0].Click()
|
||||
|
||||
gtx := layout.Context{}
|
||||
for u.recentRemoteClicks[0].Clicked(gtx) {
|
||||
record := u.recentRemotes[0]
|
||||
u.remoteBaseURL.SetText(record.BaseURL)
|
||||
u.remotePath.SetText(record.Path)
|
||||
u.remoteUsername.SetText(record.Username)
|
||||
u.remotePassword.SetText(record.Password)
|
||||
u.remotePassword.Mask = '•'
|
||||
u.rememberRemoteAuth.Value = true
|
||||
}
|
||||
|
||||
if got := u.remotePassword.Mask; got != '•' {
|
||||
t.Fatalf("remotePassword.Mask = %q, want bullet mask", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestUIOpenRemoteVaultRestoresLastOpenedGroupForThatConnection(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user