Keep distinction between Secret and DetailedSecret
This commit is contained in:
@ -16,7 +16,7 @@ from sshecret.backend import (
|
||||
Operation,
|
||||
SubSystem,
|
||||
)
|
||||
from sshecret.backend.models import DetailedSecrets
|
||||
from sshecret.backend.models import DetailedSecrets, Secret
|
||||
from sshecret.backend.api import AuditAPI, KeySpec
|
||||
from sshecret.crypto import encrypt_string, load_public_key
|
||||
|
||||
@ -274,17 +274,8 @@ class AdminBackend:
|
||||
except Exception as e:
|
||||
raise BackendUnavailableError() from e
|
||||
|
||||
async def get_secrets(self) -> list[DetailedSecrets]:
|
||||
"""Get secrets from backend."""
|
||||
try:
|
||||
return await self._get_detailed_secrets()
|
||||
except ClientManagementError:
|
||||
raise
|
||||
except Exception as e:
|
||||
raise BackendUnavailableError() from e
|
||||
|
||||
async def _get_detailed_secrets(self) -> list[DetailedSecrets]:
|
||||
"""Get detailed secrets.
|
||||
async def _get_secrets(self) -> list[Secret]:
|
||||
"""Get secrets.
|
||||
|
||||
This fetches the secret to client mapping from backend, and adds secrets from the password manager.
|
||||
"""
|
||||
@ -293,12 +284,39 @@ class AdminBackend:
|
||||
|
||||
secrets = await self.backend.get_secrets()
|
||||
backend_secret_names = [secret.name for secret in secrets]
|
||||
for secret in all_secrets:
|
||||
if secret not in backend_secret_names:
|
||||
secrets.append(Secret(name=secret, clients=[]))
|
||||
|
||||
return secrets
|
||||
|
||||
async def get_secrets(self) -> list[Secret]:
|
||||
"""Get secrets from backend."""
|
||||
try:
|
||||
return await self._get_secrets()
|
||||
except ClientManagementError:
|
||||
raise
|
||||
except Exception as e:
|
||||
raise BackendUnavailableError() from e
|
||||
|
||||
|
||||
async def _get_detailed_secrets(self) -> list[DetailedSecrets]:
|
||||
"""Get detailed secrets.
|
||||
|
||||
This fetches the secret to client mapping from backend, and adds secrets from the password manager.
|
||||
"""
|
||||
with self.password_manager() as password_manager:
|
||||
all_secrets = password_manager.get_available_secrets()
|
||||
|
||||
secrets = await self.backend.get_detailed_secrets()
|
||||
backend_secret_names = [secret.name for secret in secrets]
|
||||
for secret in all_secrets:
|
||||
if secret not in backend_secret_names:
|
||||
secrets.append(DetailedSecrets(name=secret, ids=[], clients=[]))
|
||||
|
||||
return secrets
|
||||
|
||||
|
||||
async def get_detailed_secrets(self) -> list[DetailedSecrets]:
|
||||
"""Get detailed secrets from backend."""
|
||||
try:
|
||||
@ -361,7 +379,7 @@ class AdminBackend:
|
||||
|
||||
Groups are returned in a tree, unless flat is True.
|
||||
"""
|
||||
all_secrets = await self.backend.get_secrets()
|
||||
all_secrets = await self.backend.get_detailed_secrets()
|
||||
secrets_mapping = {secret.name: secret for secret in all_secrets}
|
||||
with self.password_manager() as password_manager:
|
||||
if flat:
|
||||
|
||||
Reference in New Issue
Block a user