admin_users_personels
This commit is contained in:
142
.roo/history.md
142
.roo/history.md
@@ -950,3 +950,145 @@ A backend `admin_organizations.py` fájlban két külön kódút (Path A és Pat
|
||||
- Python syntax check: ✅ OK (`py_compile` sikeres)
|
||||
- Sync engine: 1279 OK, 0 Fixed, 0 Shadow — teljes szinkronban
|
||||
- A `SubscriptionSummary` most helyesen kapja meg a Base limit értékeket az `_extract_limit()`-en keresztül, mielőtt az Extra allowances hozzáadódnak.
|
||||
|
||||
## 2026-06-29 - Gitea #319: Felhasználói trend diagram komponens (EPIC-5, task 5.2)
|
||||
|
||||
### 🎯 Cél
|
||||
Felhasználói regisztrációs trend diagram komponens elkészítése az admin felület users list oldalára.
|
||||
|
||||
### 🔧 Változtatások
|
||||
|
||||
**1. UserTrendChart.vue komponens létrehozása:** `frontend_admin/components/charts/UserTrendChart.vue`
|
||||
- Pure SVG bar chart (nincs külső chart library függőség)
|
||||
- Period selector: 7/14/30/90 nap
|
||||
- Grid lines, Y-axis labels, hover tooltips
|
||||
- Trend direction indicator (up/down/stable)
|
||||
- Summary stats: daily avg, total, trend %
|
||||
- Loading és empty state kezelés
|
||||
|
||||
**2. i18n kulcsok hozzáadása:** `frontend_admin/locales/hu.json`, `frontend_admin/locales/en.json`
|
||||
- trend_title, trend_subtitle, trend_7d/14d/30d/90d
|
||||
- trend_no_data, trend_daily, trend_avg, trend_total, trend_vs_prev
|
||||
|
||||
**3. Integrálás a users oldalba:** `frontend_admin/pages/users/index.vue`
|
||||
- Import: `import UserTrendChart from '~/components/charts/UserTrendChart.vue'`
|
||||
- Template: `<UserTrendChart :data="stats.registration_trend" :loading="loading" />`
|
||||
- A stats kártyák és a filter bar közé helyezve
|
||||
|
||||
### ✅ Eredmény
|
||||
- A backend `GET /admin/users/stats` endpoint már létezik és visszaadja a `registration_trend` adatokat
|
||||
- A frontend build hibátlanul lefutott a `sf_admin_frontend` konténerben
|
||||
- A komponens automatikusan használja a meglévő `stats.registration_trend` adatokat
|
||||
|
||||
## 2026-06-29 - EPIC-6 Task 6.1: i18n Fordítások Felvétele (hu/en) - User & Person Oldalak
|
||||
|
||||
### 🎯 Cél
|
||||
i18n fordítások (hu/en) hozzáadása a frontend_admin user és person kezelő oldalakhoz a [`plans/logic_spec_admin_user_person_management.md`](plans/logic_spec_admin_user_person_management.md) specifikáció alapján (EPIC-6, task 6.1).
|
||||
|
||||
### 🔧 Módosított fájlok
|
||||
- [`frontend_admin/locales/en.json`](frontend_admin/locales/en.json) - Teljes `users` szekció hozzáadva (users.* és users.details.* kulcsok); JSON szintaxis hiba javítva (hiányzó vessző a persons.details után)
|
||||
- [`frontend_admin/locales/hu.json`](frontend_admin/locales/hu.json) - Teljes `users` szekció hozzáadva magyar fordításokkal; JSON szintaxis hiba javítva
|
||||
|
||||
### ✅ Eredmények
|
||||
- **JSON validáció:** ✅ Sikeres (python3 json.load)
|
||||
- **Nuxt build:** ✅ Sikeres (6.78s, AdminUsersView chunk: 19.93 kB)
|
||||
- **Hiányzó kulcsok pótolva:** `users.title`, `users.subtitle`, `users.search_placeholder`, `users.*` (status, role, plan filterek), `users.details.*` (profil, subscription, személyes adatok, tagságok)
|
||||
- **JSON hiba javítva:** Hiányzó vessző a `persons.details` objektum záró kapcsos zárójele után (224. sor) mindkét locale fájlban
|
||||
|
||||
## 2026-06-29 — RBAC Permission Check Implementation (Gitea #321)
|
||||
|
||||
### 🎯 Cél
|
||||
Card #321: "6.2: RBAC permission check implementáció" — Minden admin user/person oldalnak ellenőriznie kell a DB-driven RBAC permissionöket a spec szerint.
|
||||
|
||||
### 🔧 Módosított fájlok
|
||||
- [`frontend_admin/pages/users/index.vue`](frontend_admin/pages/users/index.vue) — `useAuthStore`/`useRouter` importok, `canViewUsers`/`canEditUsers`/`canBanUsers`/`canDeleteUsers` computed property-k, redirect guard `users:view` hiányában, `v-if="canEditUsers"` a bulk actions bar-on és toggle gombokon
|
||||
- [`frontend_admin/pages/users/[id]/index.vue`](frontend_admin/pages/users/%5Bid%5D/index.vue) — `hasEditPermission` átírva legacy `'user:edit'`-ről (singular) `'users:edit'`-re (plural, spec szerint)
|
||||
- [`frontend_admin/pages/persons/index.vue`](frontend_admin/pages/persons/index.vue) — `useAuthStore`/`useRouter` importok, `canViewPersons`/`canEditPersons`/`canMergePersons` computed property-k, redirect guard `persons:view` hiányában
|
||||
- [`frontend_admin/pages/persons/[id]/index.vue`](frontend_admin/pages/persons/%5Bid%5D/index.vue) — `hasEditPermission` egyszerűsítve `!!` koercícióra
|
||||
|
||||
### ✅ Verifikáció
|
||||
- **Nuxt build:** ✅ Sikeres (`docker compose exec sf_admin_frontend npm run build`)
|
||||
- **Permission kódok:** `users:view`, `users:edit`, `users:ban`, `users:delete`, `persons:view`, `persons:edit`, `persons:merge` — mind implementálva a spec (5.8) szerint
|
||||
- **Fallback:** Minden computed property `auth.isAdmin`-re esik vissza, ha nincs `system_capabilities`
|
||||
|
||||
## 2026-06-29 - Admin Users Filter Buttons Fix (#323)
|
||||
|
||||
### 🎯 Cél
|
||||
Az admin felületen a felhasználók listájában nem működő szűrő gombok (státusz, szerepkör, csomag) javítása.
|
||||
|
||||
### 🔧 Módosított fájlok
|
||||
- **`backend/app/api/v1/endpoints/admin.py`**:
|
||||
- `plan_filter` query paraméter hozzáadása a `list_users()` végponthoz
|
||||
- `plan_filter` szűrési logika: `User.subscription_plan == plan_filter.upper()`
|
||||
- `person_name` mező hozzáadása a válaszhoz (last_name + first_name összefűzés)
|
||||
- Case-insensitive role matching: `role.upper()` a `UserRole` enumhoz
|
||||
|
||||
- **`frontend_admin/pages/users/index.vue`**:
|
||||
- `status_filter` → `is_active`/`is_deleted` boolean mapping (switch/case)
|
||||
- `role_filter` → `role` paraméter átnevezés
|
||||
- `plan_filter` paraméter megtartva (backend most már támogatja)
|
||||
|
||||
### ✅ Eredmények
|
||||
- API szintaxis ellenőrzés: ✅ PASS
|
||||
- API végpont tesztek (7 teszt): ✅ ALL PASS
|
||||
- Basic list: 34 user, person_name megjelenik
|
||||
- role=admin (lowercase): 2 admin (case-insensitive)
|
||||
- role=user (lowercase): 30 user
|
||||
- is_active=true: 16 aktív
|
||||
- plan_filter=FREE: 28 FREE csomagos
|
||||
- Combined (role=user, is_active=true, plan_filter=PREMIUM): 2 találat
|
||||
- is_deleted=true: 1 törölt
|
||||
|
||||
## 2026-06-29 - Architect: Gamification Admin Integration Audit & Gitea Kártyák
|
||||
|
||||
### 🎯 Cél
|
||||
A meglévő Gamification rendszer (backend modellek, service-ek, API végpontok) teljes körű auditálása, komplex specifikáció készítése az admin felületre történő bekötéshez, és 15 Gitea implementációs kártya létrehozása.
|
||||
|
||||
### 🔧 Elvégzett Munka
|
||||
|
||||
**1. GAMIFICATION RENDSZER AUDIT:** ✅
|
||||
- Feltárt 10+ adatbázis tábla a `gamification` sémában (point_rules, level_configs, points_ledger, user_stats, badges, user_badges, user_contributions, seasons, seasonal_competitions, competitions, user_competition_scores)
|
||||
- Azonosított hiányzó mezők: UserStats (services_submitted, total_points), PointsLedger (xp, source_type, source_id)
|
||||
- Feltárt 14+ meglévő API végpont a `/gamification/*` útvonalon
|
||||
- Feltárt hibás végpont: `PATCH /admin/users/{id}/penalty` direkt `level` módosítás a GamificationService helyett
|
||||
- Feltárt 3 business logic probléma (szolgáltatáskikerülés, GamificationService bypass)
|
||||
|
||||
**2. KOMPLEX SPECIFIKÁCIÓ:** ✅
|
||||
- Létrehozva: [`plans/logic_spec_gamification_admin_integration.md`](plans/logic_spec_gamification_admin_integration.md)
|
||||
- 30+ új admin API endpoint terv az `admin_gamification.py` routerben
|
||||
- 12 új frontend oldal terv a `frontend_admin/pages/gamification/` mappában
|
||||
- Új Gamification menücsoport terv 6 menüponttal
|
||||
- Adatbázis séma javítások (UserStats, PointsLedger)
|
||||
- Business logic javítások (penalty endpoint, GamificationService bypass)
|
||||
- RBAC: `gamification:manage` permission
|
||||
- Adatfolyam diagram (Mermaid)
|
||||
- 15 implementációs kártya prioritási sorrenddel és függőségekkel
|
||||
|
||||
**3. GITEA KÁRTYÁK LÉTREHOZÁSA:** ✅
|
||||
15 kártya a `Epic 8 Gamification 2.0, Verseny és Önvéde` mérföldkő alatt:
|
||||
|
||||
| # | ID | Kártya Név | Scope |
|
||||
|---|----|-----------|-------|
|
||||
| 1 | #324 | Adatbázis: Gamification modell javítások (UserStats, PointsLedger) | Database |
|
||||
| 2 | #325 | Backend: Új admin_gamification.py router (30+ admin végpont) | Backend |
|
||||
| 3 | #326 | Backend: GamificationService refaktor (point_rules integráció) | Backend |
|
||||
| 4 | #327 | Backend: Meglévő PATCH /admin/users/{id}/penalty endpoint javítása | Backend |
|
||||
| 5 | #328 | Backend: gamification.py endpointok GamificationService-re átállítása | Backend |
|
||||
| 6 | #329 | Frontend: Gamification menüpont + routing az admin Nuxt felületben | Frontend |
|
||||
| 7 | #330 | Frontend: Gamification Dashboard oldal (/gamification/index.vue) | Frontend |
|
||||
| 8 | #331 | Frontend: Pontszabályok + Szintek CRUD oldalak | Frontend |
|
||||
| 9 | #332 | Frontend: Kitüntetések (Badge) kezelő oldal | Frontend |
|
||||
| 10 | #333 | Frontend: Szezonok + Versenyek kezelő oldalak | Frontend |
|
||||
| 11 | #334 | Frontend: Felhasználói statisztikák + büntetés/jutalom oldalak | Frontend |
|
||||
| 12 | #335 | Frontend: Ranglista admin nézet (leaderboard.vue) | Frontend |
|
||||
| 13 | #336 | Frontend: Master Config szerkesztő és Rendszerparaméterek oldalak | Frontend |
|
||||
| 14 | #337 | Frontend: Pontnapló böngésző oldal (ledger.vue) | Frontend |
|
||||
| 15 | #338 | Tesztelés: Gamification admin E2E tesztek | Backend+Frontend |
|
||||
|
||||
### 📂 Létrehozott fájlok
|
||||
- [`plans/logic_spec_gamification_admin_integration.md`](plans/logic_spec_gamification_admin_integration.md) (373 sor)
|
||||
|
||||
### ⚠️ Feltárt kockázatok
|
||||
1. UserStats modellből hiányzó mezők runtime hibát okozhatnak a meglévő gamification.py endpointokban
|
||||
2. A PATCH /admin/users/{id}/penalty végpont a `gamification.level` nem létező mezőt módosítja
|
||||
3. Több gamification.py végpont direktül módosít UserStats mezőket a GamificationService megkerülésével
|
||||
|
||||
Reference in New Issue
Block a user