improve error message if users don't exist

This commit is contained in:
Jörg Thalheim
2023-08-09 10:33:54 +02:00
parent 3d5a37ad03
commit 9189c31def

View File

@@ -108,12 +108,23 @@ def groups_folder(group: str) -> Path:
return sops_secrets_folder() / group / "groups" return sops_secrets_folder() / group / "groups"
def list_directory(directory: Path) -> str:
if not directory.exists():
return "{directory} does not exist"
msg = f"\n{directory} contains:"
for f in directory.iterdir():
msg += f"\n {f.name}"
return msg
def allow_member( def allow_member(
group_folder: Path, source_folder: Path, name: str, do_update_keys: bool = True group_folder: Path, source_folder: Path, name: str, do_update_keys: bool = True
) -> None: ) -> None:
source = source_folder / name source = source_folder / name
if not source.exists(): if not source.exists():
raise ClanError(f"{name} does not exist in {source_folder}") msg = f"{name} does not exist in {source_folder}"
msg += list_directory(source_folder)
raise ClanError(msg)
group_folder.mkdir(parents=True, exist_ok=True) group_folder.mkdir(parents=True, exist_ok=True)
user_target = group_folder / name user_target = group_folder / name
if user_target.exists(): if user_target.exists():
@@ -134,7 +145,9 @@ def allow_member(
def disallow_member(group_folder: Path, name: str) -> None: def disallow_member(group_folder: Path, name: str) -> None:
target = group_folder / name target = group_folder / name
if not target.exists(): if not target.exists():
raise ClanError(f"{name} does not exist in group in {group_folder}") msg = f"{name} does not exist in group in {group_folder}"
msg += list_directory(group_folder)
raise ClanError(msg)
keys = collect_keys_for_path(group_folder.parent) keys = collect_keys_for_path(group_folder.parent)