~rjarry/aerc

ee961d3b1d5ef412b3daf0ef0b8c18ac8957b365 — Koni Marti 3 months ago 5c8a749
wizard: add plaintext password warning

Warn users that the passwords are stored as plaintext. Add
recommmendation to use personal password store.

Implements: https://todo.sr.ht/~rjarry/aerc/39
Signed-off-by: Koni Marti <koni.marti@gmail.com>
Acked-by: Robin Jarry <robin@jarry.cc>
1 files changed, 18 insertions(+), 0 deletions(-)

M widgets/account-wizard.go
M widgets/account-wizard.go => widgets/account-wizard.go +18 -0
@@ 10,6 10,7 @@ import (
	"path"
	"strconv"
	"strings"
	"sync"

	"github.com/gdamore/tcell/v2"
	"github.com/go-ini/ini"


@@ 72,6 73,21 @@ type AccountWizard struct {
	complete []ui.Interactive
}

func showPasswordWarning(aerc *Aerc) {
	title := "The Wizard will store your passwords in plaintext"
	text := "It is recommended to remove the plaintext passwords " +
		"and use your personal password store with " +
		"'source-cred-cmd' and 'outgoing-cred-cmd' after the setup."
	warning := NewSelectorDialog(
		title, text, []string{"OK"}, 0,
		aerc.SelectedAccountUiConfig(),
		func(_ string, _ error) {
			aerc.CloseDialog()
		},
	)
	aerc.AddDialog(warning)
}

func NewAccountWizard(conf *config.AercConfig, aerc *Aerc) *AccountWizard {
	wizard := &AccountWizard{
		accountName:  ui.NewTextInput("", &conf.Ui).Prompt("> "),


@@ 119,10 135,12 @@ func NewAccountWizard(conf *config.AercConfig, aerc *Aerc) *AccountWizard {
		wizard.imapUri()
		wizard.smtpUri()
	})
	var once sync.Once
	wizard.imapPassword.OnChange(func(_ *ui.TextInput) {
		wizard.smtpPassword.Set(wizard.imapPassword.String())
		wizard.imapUri()
		wizard.smtpUri()
		once.Do(func() { showPasswordWarning(aerc) })
	})
	wizard.smtpServer.OnChange(func(_ *ui.TextInput) {
		wizard.smtpUri()