Improve the frontend 2
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user