1.1: GET /admin/users/{user_id} — Felhasználó részletek endpoint #305

Closed
opened 2026-06-29 03:36:24 +02:00 by kincses · 3 comments
Owner

Mérföldkő: Admin User & Person Management
Cél: REST végpont létrehozása egy felhasználó összes adatának lekérésére, beleértve Person, Address, Wallet, TrustProfile, OrganizationMembership adatokat.

🔗 Függőségek (Dependencies)

  • Bemenet (Mikre támaszkodik): Meglévő User, Person, OrganizationMember modellek; Pydantic séma (UserResponse); require_admin függőség
  • Kimenet (Mik támaszkodnak rá): Frontend user részlet oldal (3.2), user szerkesztés endpoint (1.2)

📝 Elemzés

Hiányzó endpoint: GET /admin/users/{user_id}. SQL logika: LEFT JOIN identity.users, identity.persons, identity.addresses, identity.wallets, identity.user_trust_profiles, marketplace.organization_members. Válasz tartalmazza: User alapadatok, Person adatok lakcímmel, Wallet, TrustProfile, Memberships, SystemCapabilities, OrgCapabilities. Helye: backend/app/api/v1/endpoints/admin.py a meglévő list_users endpoint mellett. Authorization: RequirePermission(permissions=['users:view'])

**Mérföldkő:** Admin User & Person Management **Cél:** REST végpont létrehozása egy felhasználó összes adatának lekérésére, beleértve Person, Address, Wallet, TrustProfile, OrganizationMembership adatokat. ### 🔗 Függőségek (Dependencies) - **Bemenet (Mikre támaszkodik):** Meglévő User, Person, OrganizationMember modellek; Pydantic séma (UserResponse); require_admin függőség - **Kimenet (Mik támaszkodnak rá):** Frontend user részlet oldal (3.2), user szerkesztés endpoint (1.2) ### 📝 Elemzés Hiányzó endpoint: GET /admin/users/{user_id}. SQL logika: LEFT JOIN identity.users, identity.persons, identity.addresses, identity.wallets, identity.user_trust_profiles, marketplace.organization_members. Válasz tartalmazza: User alapadatok, Person adatok lakcímmel, Wallet, TrustProfile, Memberships, SystemCapabilities, OrgCapabilities. Helye: backend/app/api/v1/endpoints/admin.py a meglévő list_users endpoint mellett. Authorization: RequirePermission(permissions=['users:view'])
kincses added this to the Epic 10 (Admin UI) Jegyek Létrehozása milestone 2026-06-29 03:36:24 +02:00
kincses added the Status: To DoScope: BackendType: Feature labels 2026-06-29 03:36:24 +02:00
kincses added Status: In Progress and removed Status: To Do labels 2026-06-29 03:38:56 +02:00
kincses started working 2026-06-29 03:38:56 +02:00
Author
Owner

▶️ Munka megkezdve: 2026-06-29 03:38:56

▶️ **Munka megkezdve:** 2026-06-29 03:38:56
kincses added Status: Done and removed Status: In Progress labels 2026-06-29 03:45:39 +02:00
kincses worked for 6 minutes 2026-06-29 03:45:39 +02:00
Author
Owner

Munka befejezve: 2026-06-29 03:45:39

Technikai Összefoglaló:
GET /admin/users/{user_id} végpont implementálva. Létrehozva: backend/app/api/v1/endpoints/admin_users.py. Router regisztrálva: backend/app/api/v1/api.py prefix /admin/users. Használ RequirePermission("user:view")-t, joinedload eager loading-ot User→Person→Address relációkhoz. E2E teszt: 200 OK teljes UserResponse-szel.

⏱️ Az idő rögzítve.

✅ **Munka befejezve:** 2026-06-29 03:45:39 **Technikai Összefoglaló:** GET /admin/users/{user_id} végpont implementálva. Létrehozva: backend/app/api/v1/endpoints/admin_users.py. Router regisztrálva: backend/app/api/v1/api.py prefix /admin/users. Használ RequirePermission("user:view")-t, joinedload eager loading-ot User→Person→Address relációkhoz. E2E teszt: 200 OK teljes UserResponse-szel. ⏱️ *Az idő rögzítve.*
Author
Owner

Gitea #305 kártya sikeresen lezárva
Implementált végpont: GET /admin/users/{user_id}
Végpont: GET /api/v1/admin/users/{user_id} — Felhasználó részletes adatainak lekérése

Módosított fájlok:
backend/app/api/v1/endpoints/admin_users.py (ÚJ fájl)

Aszinkron FastAPI végpont RequirePermission("user:view") jogosultság-ellenőrzéssel
joinedload eager loading a User → Person → Address → postal_code relációkhoz
Újrahasználja a meglévő _build_user_response() helper függvényt a users.py modulból
404 hibakezelés, ha a felhasználó nem található vagy is_deleted státuszú
Teljes UserResponse sémát ad vissza (Person + Address adatokkal)
backend/app/api/v1/api.py (Módosítva)

admin_users import hozzáadva
Router regisztráció: api_router.include_router(admin_users.router, prefix="/admin/users", tags=["Admin Users"])
Teszt eredmények:
Python szintaxis ellenőrzés
Modul import ellenőrzés
API route regisztráció: GET /admin/users/{user_id} -> get_admin_user
E2E teszt: GET /api/v1/admin/users/2 → 200 OK teljes UserResponse-szel (email, role, person adatok)

✅ Gitea #305 kártya sikeresen lezárva Implementált végpont: GET /admin/users/{user_id} Végpont: GET /api/v1/admin/users/{user_id} — Felhasználó részletes adatainak lekérése Módosított fájlok: backend/app/api/v1/endpoints/admin_users.py (ÚJ fájl) Aszinkron FastAPI végpont RequirePermission("user:view") jogosultság-ellenőrzéssel joinedload eager loading a User → Person → Address → postal_code relációkhoz Újrahasználja a meglévő _build_user_response() helper függvényt a [users.py](http://192.168.100.10:8443/stable-13ca0e47310505f4ab1ac59e891e9a3c5e5eec04/static/out/vs/workbench/contrib/webview/browser/pre/backend/app/api/v1/endpoints/users.py:44) modulból 404 hibakezelés, ha a felhasználó nem található vagy is_deleted státuszú Teljes UserResponse sémát ad vissza (Person + Address adatokkal) backend/app/api/v1/api.py (Módosítva) admin_users import hozzáadva Router regisztráció: api_router.include_router(admin_users.router, prefix="/admin/users", tags=["Admin Users"]) Teszt eredmények: ✅ Python szintaxis ellenőrzés ✅ Modul import ellenőrzés ✅ API route regisztráció: GET /admin/users/{user_id} -> get_admin_user ✅ E2E teszt: GET /api/v1/admin/users/2 → 200 OK teljes UserResponse-szel (email, role, person adatok)
Sign in to join this conversation.