2.2: GET /admin/persons/{person_id} — Person részletek endpoint #310

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

Mérföldkő: Admin User & Person Management
Cél: Egy Person összes adata, kapcsolódó User-ekkel, szervezeti tagságokkal, tulajdonolt cégekkel, merge history-val.

🔗 Függőségek (Dependencies)

  • Bemenet (Mikre támaszkodik): GET /admin/persons (2.1), Person modell
  • Kimenet (Mik támaszkodnak rá): Frontend Person részlet oldal (4.2), Person merge (2.4)

📝 Elemzés

GET /admin/persons/{person_id}. Válasz: Person adatok + users lista + address + memberships + owned_business_entities + merged_into (ha merge-elt) + merged_sources (ha ő a cél).

**Mérföldkő:** Admin User & Person Management **Cél:** Egy Person összes adata, kapcsolódó User-ekkel, szervezeti tagságokkal, tulajdonolt cégekkel, merge history-val. ### 🔗 Függőségek (Dependencies) - **Bemenet (Mikre támaszkodik):** GET /admin/persons (2.1), Person modell - **Kimenet (Mik támaszkodnak rá):** Frontend Person részlet oldal (4.2), Person merge (2.4) ### 📝 Elemzés GET /admin/persons/{person_id}. Válasz: Person adatok + users lista + address + memberships + owned_business_entities + merged_into (ha merge-elt) + merged_sources (ha ő a cél).
kincses added this to the Epic 10 (Admin UI) Jegyek Létrehozása milestone 2026-06-29 03:36:27 +02:00
kincses added the Status: To DoScope: BackendType: Feature labels 2026-06-29 03:36:27 +02:00
kincses added Status: In Progress and removed Status: To Do labels 2026-06-29 04:31:51 +02:00
kincses started working 2026-06-29 04:31:51 +02:00
Author
Owner

▶️ Munka megkezdve: 2026-06-29 04:31:51

▶️ **Munka megkezdve:** 2026-06-29 04:31:51
Author
Owner

▶️ Munka megkezdve: 2026-06-29 04:33:59

▶️ **Munka megkezdve:** 2026-06-29 04:33:59
kincses added Status: Done and removed Status: In Progress labels 2026-06-29 04:39:43 +02:00
kincses worked for 7 minutes 2026-06-29 04:39:43 +02:00
Author
Owner

Munka befejezve: 2026-06-29 04:39:43

Technikai Összefoglaló:
Implemented GET /admin/persons/{person_id} endpoint with full Person detail (users, memberships, owned orgs, merge history). Added PersonDetailUserInfo, PersonDetailMembership, PersonDetailOwnedOrganization, PersonDetailMergeHistory, PersonDetailResponse Pydantic models. N+1 prevention via joinedload. Created persons:view permission (id=41) in system.permissions and assigned to SUPERADMIN/ADMIN roles. Tests: existing person → 200, non-existent → 404.

⏱️ Az idő rögzítve.

✅ **Munka befejezve:** 2026-06-29 04:39:43 **Technikai Összefoglaló:** Implemented GET /admin/persons/{person_id} endpoint with full Person detail (users, memberships, owned orgs, merge history). Added PersonDetailUserInfo, PersonDetailMembership, PersonDetailOwnedOrganization, PersonDetailMergeHistory, PersonDetailResponse Pydantic models. N+1 prevention via joinedload. Created persons:view permission (id=41) in system.permissions and assigned to SUPERADMIN/ADMIN roles. Tests: existing person → 200, non-existent → 404. ⏱️ *Az idő rögzítve.*
Author
Owner

Gitea #310 — GET /admin/persons/{person_id} — Kész

Implementált végpont

GET /admin/persons/{person_id} — Teljes Person adatlap visszaadása kapcsolódó entitásokkal.

Pydantic Response Modellek

N+1 Prevention

  • joinedload(Person.address)
  • joinedload(Person.users)
  • joinedload(Person.memberships).joinedload(OrganizationMember.organization)
  • joinedload(Person.owned_business_entities)

Adatbázis módosítás

  • persons:view permission (id=41, domain=identity, action=view) létrehozva a system.permissions táblában
  • Hozzárendelve SUPERADMIN (role_id=1) és ADMIN (role_id=2) szerepkörökhöz

Tesztek

Teszt Eredmény
GET /admin/persons/1 (Admin Super) 200 — 1 user, 3 memberships
GET /admin/persons/130 (Test User) 200 — 1 user, 0 memberships
GET /admin/persons/99999 (nem létező) 404 — {"detail":"Person with id 99999 not found"}
GET /admin/persons (lista) 200 — 71 person

Gitea státusz

#310 lezárva: docker exec roo-helper python3 /scripts/gitea_manager.py finish 310

## ✅ Gitea #310 — GET /admin/persons/{person_id} — Kész ### Implementált végpont [`GET /admin/persons/{person_id}`](backend/app/api/v1/endpoints/admin_persons.py:347) — Teljes Person adatlap visszaadása kapcsolódó entitásokkal. ### Pydantic Response Modellek - [`PersonDetailUserInfo`](backend/app/api/v1/endpoints/admin_persons.py:265) — Kapcsolódó User-ek adatai (email, role, subscription, language, currency) - [`PersonDetailMembership`](backend/app/api/v1/endpoints/admin_persons.py:281) — Szervezeti tagságok (organization name, type, role, status) - [`PersonDetailOwnedOrganization`](backend/app/api/v1/endpoints/admin_persons.py:293) — Tulajdonolt cégek - [`PersonDetailMergeHistory`](backend/app/api/v1/endpoints/admin_persons.py:302) — Merge history (merged_into) - [`PersonDetailResponse`](backend/app/api/v1/endpoints/admin_persons.py:310) — Teljes Person adatlap ### N+1 Prevention - `joinedload(Person.address)` - `joinedload(Person.users)` - `joinedload(Person.memberships).joinedload(OrganizationMember.organization)` - `joinedload(Person.owned_business_entities)` ### Adatbázis módosítás - `persons:view` permission (id=41, domain=identity, action=view) létrehozva a `system.permissions` táblában - Hozzárendelve SUPERADMIN (role_id=1) és ADMIN (role_id=2) szerepkörökhöz ### Tesztek | Teszt | Eredmény | |-------|----------| | `GET /admin/persons/1` (Admin Super) | ✅ 200 — 1 user, 3 memberships | | `GET /admin/persons/130` (Test User) | ✅ 200 — 1 user, 0 memberships | | `GET /admin/persons/99999` (nem létező) | ✅ 404 — `{"detail":"Person with id 99999 not found"}` | | `GET /admin/persons` (lista) | ✅ 200 — 71 person | ### Gitea státusz ✅ #310 lezárva: `docker exec roo-helper python3 /scripts/gitea_manager.py finish 310`
Sign in to join this conversation.