ask key dropping => ask once and remember
This commit is contained in:
parent
5a01b2442a
commit
2d5fd8e0cd
1 changed files with 18 additions and 5 deletions
23
client.py
23
client.py
|
@ -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):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue