Simplify: общие хелперы в роутерах
- IP клиента для аудита брался инлайном в 19 местах шести модулей; теперь security.client_ip — за привратником адрес придётся читать из X-Forwarded-For, и одна точка правки для этого обязательна. - Чтение загруженной картинки (лимит размера + sniff формата) было скопировано в четыре обработчика; вынесено в user_service.read_capped_image. - Лимит размера вложения жил двумя одинаковыми константами в игроцком и админском роутере — перенесён к самим вложениям. - update_nickname и set_active_group переиспользуют nickname_format_ok и group_service.get_membership вместо собственных копий проверки. - Убраны осиротевшие импорты и комментарий-заготовка о вложениях, которые давно реализованы (MatchAttachment). #8 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BoiJK9ux8peeyjLb8TYjFf
This commit is contained in:
@@ -18,6 +18,7 @@ from fastapi import APIRouter, Depends, Request
|
||||
from sqlmodel import Session, select
|
||||
|
||||
from app.auth.deps import get_current_admin
|
||||
from app.core.security import client_ip
|
||||
from app.core.errors import NotFoundError, ValidationError
|
||||
from app.db.session import get_session
|
||||
from app.models import Group, Match, MatchParticipant, User
|
||||
@@ -63,7 +64,7 @@ def delete_user_hard(
|
||||
entity_type="user",
|
||||
entity_id=user_id,
|
||||
payload={"hard": True, "nickname": nickname},
|
||||
ip=request.client.host if request.client else None,
|
||||
ip=client_ip(request),
|
||||
)
|
||||
session.commit()
|
||||
return s.OkResponse()
|
||||
|
||||
Reference in New Issue
Block a user