diff options
author | Koni Marti <koni.marti@gmail.com> | 2022-08-08 22:14:56 +0200 |
---|---|---|
committer | Robin Jarry <robin@jarry.cc> | 2022-08-22 09:30:37 +0200 |
commit | ee961d3b1d5ef412b3daf0ef0b8c18ac8957b365 (patch) | |
tree | a4931a16bf1f613fee767990b909c250ce702398 /widgets | |
parent | 5c8a749cfa97b3ad9184f0f80a7d5c7921e8c073 (diff) | |
download | aerc-ee961d3b1d5ef412b3daf0ef0b8c18ac8957b365.tar.gz |
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>
Diffstat (limited to 'widgets')
-rw-r--r-- | widgets/account-wizard.go | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/widgets/account-wizard.go b/widgets/account-wizard.go index 3673ed1c..4856c608 100644 --- a/widgets/account-wizard.go +++ b/widgets/account-wizard.go @@ -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() |