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): ...@@ -475,7 +475,7 @@ def check_keys(options, recipients=None, quiet=False):
if not recipients is None: if not recipients is None:
# On cherche à savoir si on droppe ce recipient # 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)" 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 drop = True # si on a répondu oui à "abandonner ?", on droppe
elif options.drop_invalid and options.force: elif options.drop_invalid and options.force:
drop = True # ou bien si --drop-invalid avec --force nous autorisent à dropper silencieusement 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""" % ( ...@@ -808,16 +808,29 @@ C'est-à-dire pour les utilisateurs suivants :\n%s""" % (
success, message = put_password(options, new_roles, ntexte) success, message = put_password(options, new_roles, ntexte)
print(message.encode("utf-8")) print(message.encode("utf-8"))
def confirm(options, text): _remember_dict = {}
"""Demande confirmation, sauf si on est mode ``--force``""" 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: if options.force:
return True return True
if remember_key in _remember_dict:
return _remember_dict[remember_key]
while True: while True:
out = raw_input((text + u' (o/n)').encode("utf-8")).lower() out = raw_input((text + u' (o/n)').encode("utf-8")).lower()
if out == 'o': if out == 'o':
return True res = True
break
elif out == 'n': 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 @need_filename
def remove_file(options): 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