Commit 2d5fd8e0 authored by Daniel Stan's avatar Daniel Stan

ask key dropping => ask once and remember

parent 5a01b244
......@@ -475,7 +475,7 @@ def check_keys(options, recipients=None, quiet=False):
if not recipients is None:
# On cherche à savoir si on droppe ce recipient
message = u"Abandonner le chiffrement pour cette clé ? (Si vous la conservez, il est posible que gpg crashe)"
if confirm(options, message):
if confirm(options, message, ('drop', fpr, mail)):
drop = True # si on a répondu oui à "abandonner ?", on droppe
elif options.drop_invalid and options.force:
drop = True # ou bien si --drop-invalid avec --force nous autorisent à dropper silencieusement
......@@ -808,16 +808,29 @@ C'est-à-dire pour les utilisateurs suivants :\n%s""" % (
success, message = put_password(options, new_roles, ntexte)
print(message.encode("utf-8"))
def confirm(options, text):
"""Demande confirmation, sauf si on est mode ``--force``"""
_remember_dict = {}
def confirm(options, text, remember_key=None):
"""Demande confirmation, sauf si on est mode ``--force``.
Si ``remember_key`` est fourni, il doit correspondre à un objet hashable
qui permettra de ne pas poser deux fois les mêmes questions.
"""
global _remember_dict
if options.force:
return True
if remember_key in _remember_dict:
return _remember_dict[remember_key]
while True:
out = raw_input((text + u' (o/n)').encode("utf-8")).lower()
if out == 'o':
return True
res = True
break
elif out == 'n':
return False
res = False
break
# Remember the answer
if remember_key is not None:
_remember_dict[remember_key] = res
return res
@need_filename
def remove_file(options):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment