1.4: GET /admin/users/{user_id}/memberships — Szervezeti tagságok endpoint #308

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

Mérföldkő: Admin User & Person Management
Cél: Egy felhasználó szervezeti tagságainak listázása. Válasz: organization_id, organization_name, role, status, is_permanent, expires_at, invited_email, is_verified.

🔗 Függőségek (Dependencies)

  • Bemenet (Mikre támaszkodik): GET /admin/users/{user_id} (1.1), OrganizationMember modell
  • Kimenet (Mik támaszkodnak rá): Frontend user részlet oldal Memberships tab (3.2)

📝 Elemzés

Új GET /admin/users/{user_id}/memberships endpoint. JOIN marketplace.organization_members ON user_id, majd JOIN fleet.organizations ON organization_id a névhez.

**Mérföldkő:** Admin User & Person Management **Cél:** Egy felhasználó szervezeti tagságainak listázása. Válasz: organization_id, organization_name, role, status, is_permanent, expires_at, invited_email, is_verified. ### 🔗 Függőségek (Dependencies) - **Bemenet (Mikre támaszkodik):** GET /admin/users/{user_id} (1.1), OrganizationMember modell - **Kimenet (Mik támaszkodnak rá):** Frontend user részlet oldal Memberships tab (3.2) ### 📝 Elemzés Új GET /admin/users/{user_id}/memberships endpoint. JOIN marketplace.organization_members ON user_id, majd JOIN fleet.organizations ON organization_id a névhez.
kincses added this to the Epic 10 (Admin UI) Jegyek Létrehozása milestone 2026-06-29 03:36:26 +02:00
kincses added the Status: To DoScope: BackendType: Feature labels 2026-06-29 03:36:26 +02:00
kincses added Status: Done and removed Status: To Do labels 2026-06-29 04:19:26 +02:00
Author
Owner

Munka befejezve: 2026-06-29 04:19:26

Technikai Összefoglaló:
GET /admin/users/{user_id}/memberships endpoint implementálva. A végpont listázza egy admin felhasználó szervezeti tagságait (OrganizationMember) a fleet.organization_members táblából, joinedload-dal betöltve a szervezet nevét. Válasz: {total, items} struktúra. Jogosultság: RequirePermission('user:view'). Tesztelve: létező user (124) → 200, nem létező user (99999) → 404.

⏱️ Az idő rögzítve.

✅ **Munka befejezve:** 2026-06-29 04:19:26 **Technikai Összefoglaló:** GET /admin/users/{user_id}/memberships endpoint implementálva. A végpont listázza egy admin felhasználó szervezeti tagságait (OrganizationMember) a fleet.organization_members táblából, joinedload-dal betöltve a szervezet nevét. Válasz: {total, items} struktúra. Jogosultság: RequirePermission('user:view'). Tesztelve: létező user (124) → 200, nem létező user (99999) → 404. ⏱️ *Az idő rögzítve.*
Author
Owner

Gitea #308 - GET /admin/users/{user_id}/memberships — Kész

Implementált végpont

GET /admin/users/{user_id}/memberships

A logic_spec_admin_user_person_management.md specifikáció 4.8-as szekciója alapján elkészült az admin felhasználó szervezeti tagságait listázó endpoint.

Technikai részletek

## ✅ Gitea #308 - GET /admin/users/{user_id}/memberships — Kész ### Implementált végpont [`GET /admin/users/{user_id}/memberships`](backend/app/api/v1/endpoints/admin_users.py:607) A [`logic_spec_admin_user_person_management.md`](plans/logic_spec_admin_user_person_management.md) specifikáció 4.8-as szekciója alapján elkészült az admin felhasználó szervezeti tagságait listázó endpoint. ### Technikai részletek - **Pydantic modellek:** [`UserMembershipResponse`](backend/app/api/v1/endpoints/admin_users.py:587), [`UserMembershipsResponse`](backend/app/api/v1/endpoints/admin_users.py:601) - **Adatforrás:** [`
Author
Owner

Gitea #308 kártya sikeresen implementálva és lezárva

Implementált végpont: GET /admin/users/{user_id}/memberships

Specifikáció: logic_spec_admin_user_person_management.md — Section 4.8 (EPIC-1, task 1.4)

Működés:

  • Jogosultság: RequirePermission("user:view") — csak admin felhasználók hívhatják
  • Bemenet: user_id: int (path paraméter)
  • Válasz: UserMembershipsResponse { total: int, items: UserMembershipResponse[] }
    • Minden item tartalmazza: id, organization_id, organization_name, organization_display_name, role, status, is_verified, is_permanent, created_at, updated_at
  • Hibakezelés: 404 ha a felhasználó nem létezik

Technikai részletek:

  • Az OrganizationMember modellből queryz joinedload(Organization)-dal a szervezet nevének hatékony betöltéséhez
  • A role enum érték stringgé alakítva a JSON serializációhoz
  • A created_at/updated_at datetime objektumok ISO string formátumba konvertálva

Tesztek:

  • Létező user (124): 200{"total":0,"items":[]}
  • Nem létező user (99999): 404{"detail":"Felhasználó nem található."}
  • Sync Engine: Sikeres (a séma konzisztens)
## ✅ Gitea #308 kártya sikeresen implementálva és lezárva ### Implementált végpont: [`GET /admin/users/{user_id}/memberships`](backend/app/api/v1/endpoints/admin_users.py:607) **Specifikáció:** [`logic_spec_admin_user_person_management.md`](plans/logic_spec_admin_user_person_management.md) — Section 4.8 (EPIC-1, task 1.4) ### Működés: - **Jogosultság:** `RequirePermission("user:view")` — csak admin felhasználók hívhatják - **Bemenet:** `user_id: int` (path paraméter) - **Válasz:** `UserMembershipsResponse { total: int, items: UserMembershipResponse[] }` - Minden item tartalmazza: `id`, `organization_id`, `organization_name`, `organization_display_name`, `role`, `status`, `is_verified`, `is_permanent`, `created_at`, `updated_at` - **Hibakezelés:** `404` ha a felhasználó nem létezik ### Technikai részletek: - Az [`OrganizationMember`](backend/app/models/marketplace/organization.py:275) modellből queryz `joinedload(Organization)`-dal a szervezet nevének hatékony betöltéséhez - A `role` enum érték stringgé alakítva a JSON serializációhoz - A `created_at`/`updated_at` datetime objektumok ISO string formátumba konvertálva ### Tesztek: - **Létező user (124):** `200` → `{"total":0,"items":[]}` - **Nem létező user (99999):** `404` → `{"detail":"Felhasználó nem található."}` - **Sync Engine:** ✅ Sikeres (a séma konzisztens)
Sign in to join this conversation.