Merge pull request #291 from PR0M3TH3AN/codex/make-added-fields-editable-in-modify-existing-entry

Enable editing password entry labels
This commit is contained in:
thePR0M3TH3AN
2025-07-05 15:41:40 -04:00
committed by GitHub
4 changed files with 16 additions and 2 deletions

View File

@@ -521,7 +521,7 @@ class EntryManager:
:param url: (Optional) The new URL (password entries). :param url: (Optional) The new URL (password entries).
:param blacklisted: (Optional) The new blacklist status. :param blacklisted: (Optional) The new blacklist status.
:param notes: (Optional) New notes to attach to the entry. :param notes: (Optional) New notes to attach to the entry.
:param label: (Optional) The new label for TOTP entries. :param label: (Optional) The new label for the entry.
:param period: (Optional) The new TOTP period in seconds. :param period: (Optional) The new TOTP period in seconds.
:param digits: (Optional) The new number of digits for TOTP codes. :param digits: (Optional) The new number of digits for TOTP codes.
""" """
@@ -554,6 +554,9 @@ class EntryManager:
entry["digits"] = digits entry["digits"] = digits
logger.debug(f"Updated digits to '{digits}' for index {index}.") logger.debug(f"Updated digits to '{digits}' for index {index}.")
else: else:
if label is not None:
entry["label"] = label
logger.debug(f"Updated label to '{label}' for index {index}.")
if username is not None: if username is not None:
entry["username"] = username entry["username"] = username
logger.debug(f"Updated username to '{username}' for index {index}.") logger.debug(f"Updated username to '{username}' for index {index}.")

View File

@@ -1665,7 +1665,7 @@ class PasswordManager:
custom_fields=custom_fields, custom_fields=custom_fields,
) )
else: else:
website_name = entry.get("website") website_name = entry.get("label", entry.get("website"))
username = entry.get("username") username = entry.get("username")
url = entry.get("url") url = entry.get("url")
blacklisted = entry.get("blacklisted") blacklisted = entry.get("blacklisted")
@@ -1677,6 +1677,7 @@ class PasswordManager:
"cyan", "cyan",
) )
) )
print(colored(f"Current Label: {website_name}", "cyan"))
print(colored(f"Current Username: {username or 'N/A'}", "cyan")) print(colored(f"Current Username: {username or 'N/A'}", "cyan"))
print(colored(f"Current URL: {url or 'N/A'}", "cyan")) print(colored(f"Current URL: {url or 'N/A'}", "cyan"))
print( print(
@@ -1686,6 +1687,13 @@ class PasswordManager:
) )
) )
new_label = (
input(
f'Enter new label (leave blank to keep "{website_name}"): '
).strip()
or website_name
)
new_username = ( new_username = (
input( input(
f'Enter new username (leave blank to keep "{username or "N/A"}"): ' f'Enter new username (leave blank to keep "{username or "N/A"}"): '
@@ -1747,6 +1755,7 @@ class PasswordManager:
new_url, new_url,
new_blacklisted, new_blacklisted,
new_notes, new_notes,
label=new_label,
custom_fields=custom_fields, custom_fields=custom_fields,
) )

View File

@@ -469,5 +469,6 @@ def derive_pgp_key(
hashes=[HashAlgorithm.SHA256], hashes=[HashAlgorithm.SHA256],
ciphers=[SymmetricKeyAlgorithm.AES256], ciphers=[SymmetricKeyAlgorithm.AES256],
compression=[CompressionAlgorithm.ZLIB], compression=[CompressionAlgorithm.ZLIB],
created=created,
) )
return str(key), key.fingerprint return str(key), key.fingerprint

View File

@@ -57,6 +57,7 @@ def test_manager_workflow(monkeypatch):
"", # length (default) "", # length (default)
"0", # retrieve index "0", # retrieve index
"0", # modify index "0", # modify index
"", # new label
"user", # new username "user", # new username
"", # new url "", # new url
"", # blacklist status "", # blacklist status