def check_trust_map(ui_, stored_cfg, repo_hash, notifiers, trusted_notifiers): """ INTERNAL: Function to interactively update the trust map. """ if len(trusted_notifiers) > 0: return ui_.warn("\nYou MUST trust at least one FMS Id to " + "provide update notifications.\n\n") added = False fms_ids = notifiers.keys() fms_ids.sort() done = False for fms_id in fms_ids: if done: break ui_.status("Trust notifications from %s\n" % fms_id) while not done: result = ui_.prompt("(y)es, (n)o, (d)one, (a)bort?").lower() if result is None: raise util.Abort("Interactive input required.") elif result == 'y': trust_id_for_repo(stored_cfg.fmsread_trust_map, fms_id, repo_hash) added = True break elif result == 'n': break elif result == 'd': done = True break elif result == 'a': raise util.Abort("User aborted editing trust map.") if not added: raise util.Abort("No trusted notifiers!") Config.to_file(stored_cfg) ui_.status("Saved updated config file.\n\n")
def handled_trust_cmd(ui_, params, stored_cfg): """ INTERNAL: Handle --trust, --untrust and --showtrust. """ if params['FMSREAD'] == 'trust': if trust_id_for_repo(stored_cfg.fmsread_trust_map, params['FMSREAD_FMSID'], params['FMSREAD_HASH']): ui_.status("Updated the trust map.\n") Config.to_file(stored_cfg) return True elif params['FMSREAD'] == 'untrust': if untrust_id_for_repo(stored_cfg.fmsread_trust_map, params['FMSREAD_FMSID'], params['FMSREAD_HASH']): ui_.status("Updated the trust map.\n") Config.to_file(stored_cfg) return True elif params['FMSREAD'] == 'showtrust': dump_trust_map(ui_, params, stored_cfg.fmsread_trust_map, True) return True return False