Improve the frontend 2

This commit is contained in:
Urtzi Alfaro
2025-10-29 06:58:05 +01:00
parent 858d985c92
commit 36217a2729
98 changed files with 6652 additions and 4230 deletions

View File

@@ -152,8 +152,19 @@ def create_audit_log_model(Base):
class AuditLogger:
"""Service for logging audit events"""
def __init__(self, service_name: str):
def __init__(self, service_name: str, audit_log_model):
"""
Initialize AuditLogger with service-specific AuditLog model
Args:
service_name: Name of the service (e.g., "production-service")
audit_log_model: The service-specific AuditLog model class created via create_audit_log_model()
"""
if not audit_log_model:
raise ValueError(f"audit_log_model is required for AuditLogger in {service_name}")
self.service_name = service_name
self.audit_log_model = audit_log_model
self.logger = logger.bind(service=service_name)
async def log_event(
@@ -193,7 +204,7 @@ class AuditLogger:
user_agent: Client user agent
"""
try:
audit_log = AuditLog(
audit_log = self.audit_log_model(
tenant_id=uuid.UUID(tenant_id) if isinstance(tenant_id, str) else tenant_id,
user_id=uuid.UUID(user_id) if isinstance(user_id, str) else user_id,
action=action,
@@ -312,6 +323,21 @@ class AuditLogger:
)
def create_audit_logger(service_name: str) -> AuditLogger:
"""Factory function to create audit logger for a service"""
return AuditLogger(service_name)
def create_audit_logger(service_name: str, audit_log_model) -> AuditLogger:
"""
Factory function to create audit logger for a service
Args:
service_name: Name of the service (e.g., "production-service")
audit_log_model: The service-specific AuditLog model class (REQUIRED - created via create_audit_log_model)
Returns:
Configured AuditLogger instance
Example:
from app.models import AuditLog
from shared.security import create_audit_logger
audit_logger = create_audit_logger("production-service", AuditLog)
"""
return AuditLogger(service_name, audit_log_model)