def save_password(ident: str, details: Password, new_password: bool = False) -> None: password_store = PasswordStore() entries = password_store.load_for_modification() entries[ident] = details password_store.save(entries) _add_change(ident, change_type="new" if new_password else "edit")
def test_password_store_save(store: PasswordStore): entries = { "ding": Password({ "title": "Title", "comment": "Comment", "docu_url": "http://no/url", "password": "******", "owned_by": None, "shared_with": [], }) } store.save(entries) assert store.load_for_reading() == entries
def test_rewrite_password_store_migrate(uc: update_config.UpdateConfig) -> None: with pytest.raises(ValueError): assert password_store.load() with pytest.raises(ValueError): assert PasswordStore().load_for_reading() assert _read_passwords_mk()["ding"]["password"] == "dong" uc._rewrite_password_store() assert password_store.load()["ding"] == "dong" assert _read_passwords_mk()["ding"]["password"] == "" assert PasswordStore().load_for_reading()["ding"]["password"] == "dong" # Once we have the new format, a second execution must not fail uc._rewrite_password_store()
def load_passwords_to_modify() -> Dict[str, Password]: password_store = PasswordStore() return password_store.load_for_modification()
def load_passwords() -> Dict[str, Password]: password_store = PasswordStore() return password_store.load_for_reading()
def remove_password(ident: str): password_store = PasswordStore() entries = load_passwords_to_modify() _ = entries.pop(ident) password_store.save(entries) _add_change(ident, new_password=False)
def save_password(ident: str, details: Password, new_password=False): password_store = PasswordStore() entries = password_store.load_for_modification() entries[ident] = details password_store.save(entries) _add_change(ident, new_password=new_password)
def __init__(self): super(ModePasswords, self).__init__( mode_type=PasswordStoreModeType(), store=PasswordStore(), ) self._contact_groups = load_contact_group_information()
def __init__(self): super(ModeEditPassword, self).__init__( mode_type=PasswordStoreModeType(), store=PasswordStore(), )
def load_passwords() -> dict[str, Password]: password_store = PasswordStore() return password_store.filter_usable_entries( password_store.load_for_reading())
def remove_password(ident: str): password_store = PasswordStore() entries = load_passwords_to_modify() _ = entries.pop(ident) password_store.save(entries) _add_change(ident, change_type="delete")
def test_password_store_filter_editable_entries_owned_by_user_group( test_store: PasswordStore, monkeypatch: pytest.MonkeyPatch): monkeypatch.setattr(userdb, "contactgroups_of_user", lambda u: ["group1"]) assert test_store.filter_editable_entries( test_store.load_for_reading()) != {}
def fixture_store() -> PasswordStore: return PasswordStore()
def test_password_store_filter_editable_entries_not_permitted( test_store: PasswordStore, ): assert test_store.filter_editable_entries( test_store.load_for_reading()) == {}
def test_password_store_filter_editable_entries_by_permission( test_store: PasswordStore, ): assert test_store.filter_editable_entries( test_store.load_for_reading()) != {}
def __init__(self) -> None: super().__init__( mode_type=PasswordStoreModeType(), store=PasswordStore(), )
def save_password(ident: str, details: PASSWORD): password_store = PasswordStore() entries = password_store.load_for_modification() entries[ident] = details password_store.save(entries)
def load_passwords_to_modify() -> dict[str, Password]: password_store = PasswordStore() return password_store.filter_editable_entries( password_store.load_for_modification())