Ejemplo n.º 1
0
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
Ejemplo n.º 3
0
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()
Ejemplo n.º 4
0
def load_passwords_to_modify() -> Dict[str, Password]:
    password_store = PasswordStore()
    return password_store.load_for_modification()
Ejemplo n.º 5
0
def load_passwords() -> Dict[str, Password]:
    password_store = PasswordStore()
    return password_store.load_for_reading()
Ejemplo n.º 6
0
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)
Ejemplo n.º 7
0
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)
Ejemplo n.º 8
0
 def __init__(self):
     super(ModePasswords, self).__init__(
         mode_type=PasswordStoreModeType(),
         store=PasswordStore(),
     )
     self._contact_groups = load_contact_group_information()
Ejemplo n.º 9
0
 def __init__(self):
     super(ModeEditPassword, self).__init__(
         mode_type=PasswordStoreModeType(),
         store=PasswordStore(),
     )
Ejemplo n.º 10
0
def load_passwords() -> dict[str, Password]:
    password_store = PasswordStore()
    return password_store.filter_usable_entries(
        password_store.load_for_reading())
Ejemplo n.º 11
0
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()) != {}
Ejemplo n.º 16
0
 def __init__(self) -> None:
     super().__init__(
         mode_type=PasswordStoreModeType(),
         store=PasswordStore(),
     )
Ejemplo n.º 17
0
def save_password(ident: str, details: PASSWORD):
    password_store = PasswordStore()
    entries = password_store.load_for_modification()
    entries[ident] = details
    password_store.save(entries)
Ejemplo n.º 18
0
def load_passwords_to_modify() -> dict[str, Password]:
    password_store = PasswordStore()
    return password_store.filter_editable_entries(
        password_store.load_for_modification())