Default to sole saved remote binding
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user