Default to sole saved remote binding

This commit is contained in:
Joe Julian
2026-04-06 17:15:21 -07:00
parent f1ac24efb9
commit 30cab83eaa
2 changed files with 150 additions and 7 deletions
+31 -7
View File
@@ -2143,31 +2143,55 @@ func (u *ui) selectVaultRemoteCredentialEntry(id string) {
}
func (u *ui) selectedVaultRemoteProfile() (vault.RemoteProfile, bool) {
for _, profile := range u.availableRemoteProfiles() {
if profile.ID == strings.TrimSpace(u.selectedVaultRemoteProfileID) {
selectedID := strings.TrimSpace(u.selectedVaultRemoteProfileID)
profiles := u.availableRemoteProfiles()
for _, profile := range profiles {
if profile.ID == selectedID {
return profile, true
}
}
if selectedID == "" && len(profiles) == 1 {
return profiles[0], true
}
return vault.RemoteProfile{}, false
}
func (u *ui) selectedVaultRemoteCredentialEntry() (vault.Entry, bool) {
for _, entry := range u.availableRemoteCredentialEntries() {
if entry.ID == strings.TrimSpace(u.selectedVaultRemoteCredentialEntryID) {
selectedID := strings.TrimSpace(u.selectedVaultRemoteCredentialEntryID)
entries := u.availableRemoteCredentialEntries()
for _, entry := range entries {
if entry.ID == selectedID {
return entry, true
}
}
if selectedID == "" && len(entries) == 1 {
return entries[0], true
}
return vault.Entry{}, false
}
func (u *ui) selectedVaultRemoteBinding() (appstate.RemoteBinding, bool) {
if strings.TrimSpace(u.selectedVaultRemoteProfileID) == "" || strings.TrimSpace(u.selectedVaultRemoteCredentialEntryID) == "" {
profileID := strings.TrimSpace(u.selectedVaultRemoteProfileID)
entryID := strings.TrimSpace(u.selectedVaultRemoteCredentialEntryID)
if profileID != "" && entryID != "" {
return appstate.RemoteBinding{
LocalVaultPath: strings.TrimSpace(u.vaultPath.Text()),
RemoteProfileID: profileID,
CredentialEntryID: entryID,
}, true
}
profile, ok := u.selectedVaultRemoteProfile()
if !ok {
return appstate.RemoteBinding{}, false
}
entry, ok := u.selectedVaultRemoteCredentialEntry()
if !ok {
return appstate.RemoteBinding{}, false
}
return appstate.RemoteBinding{
LocalVaultPath: strings.TrimSpace(u.vaultPath.Text()),
RemoteProfileID: strings.TrimSpace(u.selectedVaultRemoteProfileID),
CredentialEntryID: strings.TrimSpace(u.selectedVaultRemoteCredentialEntryID),
RemoteProfileID: profile.ID,
CredentialEntryID: entry.ID,
}, true
}