Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 1 addition & 11 deletions src/audit/service.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from typing import Any

from fastapi import Depends, Request
from fastapi import Depends
from loguru import logger
from sqlalchemy.ext.asyncio import AsyncSession

Expand Down Expand Up @@ -77,13 +77,3 @@ async def get_audit_service(
) -> AuditService:
repository = AuditRepository(session=session)
return AuditService(repository=repository)


def extract_client_info(request: Request) -> tuple[str | None, str | None]:
user_agent = request.headers.get("user-agent")
forwarded_for = request.headers.get("x-forwarded-for")
if forwarded_for:
ip = forwarded_for.split(",")[0].strip()
else:
ip = request.client.host if request.client else None
return user_agent, ip
2 changes: 1 addition & 1 deletion src/auth/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from src.audit import AuditService, get_audit_service
from src.audit.dependencies import generate_request_id
from src.audit.schemas import AuditAction, AuditResult
from src.audit.service import extract_client_info
from src.http.utils import extract_client_info
from src.auth.models import User

from .backend import auth_backend
Expand Down
2 changes: 1 addition & 1 deletion src/auth/rbac.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

from src.audit import AuditService, generate_request_id, get_audit_service
from src.audit.schemas import AuditAction, AuditResult
from src.audit.service import extract_client_info
from src.http.utils import extract_client_info
from src.auth.models import Permission, Role, RolePermission, User, UserRole
from src.auth.exceptions import (
InsufficientPermissionException,
Expand Down
2 changes: 1 addition & 1 deletion src/http/routers/auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

from src.audit import AuditService, get_audit_service
from src.audit.schemas import AuditAction, AuditResult
from src.audit.service import extract_client_info
from src.http.utils import extract_client_info
from src.auth import fastapi_users
from src.auth.backend import (
RefreshTokenManager,
Expand Down
11 changes: 11 additions & 0 deletions src/http/utils.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
from fastapi import Request


def extract_client_info(request: Request) -> tuple[str | None, str | None]:
user_agent = request.headers.get("user-agent")
forwarded_for = request.headers.get("x-forwarded-for")
if forwarded_for:
ip = forwarded_for.split(",")[0].strip()
else:
ip = request.client.host if request.client else None
return user_agent, ip
Loading