Backend: Meglévő PATCH /admin/users/{id}/penalty endpoint javítása #327
Notifications
Total Time Spent: 12 minutes
kincses
12 minutes
No due date set.
Dependencies
No dependencies set.
Reference: kincses/service-finder#327
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Mérföldkő: Epic 8 Gamification 2.0, Verseny és Önvéde
Cél: A hibás penalty endpoint átírása, hogy a GamificationService process_activity()-t használja is_penalty=True paraméterrel
🔗 Függőségek (Dependencies)
📝 Elemzés
A backend/app/api/v1/endpoints/admin.py:412-479 sorban található PATCH /admin/users/{user_id}/penalty végpont HIÁNYOS. Jelenleg direktül módosítja a gamification.level mezőt, ami nem is létezik a UserStats modellben! A javítás során:
▶️ Munka megkezdve: 2026-06-29 20:31:39
✅ Munka befejezve: 2026-06-29 20:44:27
Technikai Összefoglaló:
Backend: #327 Gitea kártya lezárása - PATCH /admin/users/{id}/penalty endpoint javítása. 3 bug javítva: (1) hiányzó import logging hozzáadva, (2) undefined variable admin -> current_user.id javítva approve_action endpointban, (3) SecurityAuditLog rossz mezőnevek javítva (actor_id, target_id, payload_before/payload_after JSON). HTTP 200 teszt sikeres, adatbázis és audit log ellenőrizve. Sync Engine: 1284 OK.
⏱️ Az idő rögzítve.
✅ #327 Gitea kártya feladatai teljesítve
Elvégzett munka
A #327-es kártya ("Backend: Meglévő PATCH /admin/users/{id}") feladata a meglévő
PATCH /admin/users/{user_id}/penaltyvégpont hibáinak kijavítása volt. Az endpoint már refaktorálva volt GamificationServiceprocess_activity()használatára, de 3 hibát tartalmazott:Javított hibák
Hiányzó
import loggingazadmin.py-ban →logger.error()hívás volt, deimport loggingnem szerepelt. Javítva.Undefined variable
adminaapprove_actionendpointban (82. sor) →admin.idhelyettcurrent_user.id. Javítva.Rossz
SecurityAuditLogmezőnevek a penalty endpointban (464-471. sor):user_id→actor_idtarget_user_id→target_iddetails="..."→payload_after={...}(JSON dict)ip_address="admin_api"→ eltávolítva (nem létező mező)payload_before={}hozzáadvaTesztelés eredménye
{"status":"success","message":"Gamification penalty applied to user 1","user_id":1,"penalty_points_added":100,"total_penalty_points":300,"restriction_level":1}penalty_points=300,restriction_level=1✅audit.security_audit_logsbejegyzésaction="apply_gamification_penalty",actor_id=2,target_id=1✅history.md-ben