Changelogs

Reclutamiento: página de usuario para reclamar recompensas (recruit-a-friend)

13 de julio de 2026 a las 00:45

adevopg · 7534b9c

Portado de home/views/recruit.py: - lib/recruit-claim.ts: getRecruitRewards (con marca de reclamadas), getRecruitedLevel80Count, y claimRecruitReward con las mismas validaciones que Django (recompensa existe, no reclamada, amigos reclutados a nivel 80 suficientes, anti-abuso por IP compartida), entrega por SOAP `.send items` (éxito si "Mail sent to") y registro en home_claimedreward. Extra de seguridad: valida que el personaje sea de la cuenta. - API POST /api/recruit/claim (401 sin sesión). - UI /recruit (pública): rejilla de recompensas con estado reclamada/elegible/bloqueada, selector de personaje y contador de amigos a nivel 80. Enlace en el footer. - i18n es/en: namespace RecruitClaim + Nav.recruit. Verificado: build OK, /recruit 200, claim 401 sin sesión.




Admin: recompensas de reclutamiento (recruit-a-friend)

13 de julio de 2026 a las 00:41

adevopg · c6c56c3

- lib/admin-recruit.ts: list/create/delete sobre home_recruitreward (required_friends, reward_name, item_id, item_quantity, item_link, icon_class). - API: POST /api/admin/recruit, DELETE /api/admin/recruit/[id] (403 sin admin). - UI: /admin/recruit con AdminRecruitManager (alta ordenada por amigos requeridos), enlace desde el índice del admin. - i18n es/en (Admin): 10 claves nuevas. Verificado: build OK, /admin/recruit 307→login, APIs 403 sin admin, columnas confirmadas en la migración 0001_initial.




Admin: gestión de usuarios (buscar, banear/desbanear)

13 de julio de 2026 a las 00:39

adevopg · d382adc

- lib/admin-users.ts: searchAccounts (acore_auth.account + account_banned + gmlevel), banAccount/unbanAccount por BD (autoritativo) con kick best-effort por SOAP. Baneo días<=0 = permanente (unbandate=bandate, convención AzerothCore); desactiva baneo activo previo antes de insertar el nuevo. - API: GET /api/admin/users?q=, POST {accountId, action:ban|unban, reason, days} (403 sin admin). - UI: /admin/users con AdminUsersManager (buscar por usuario/email, badges GM/online/baneado, banear con motivo+días o desbanear), enlace desde el índice del admin. - i18n es/en (Admin): 14 claves nuevas. Verificado: build OK, /admin/users 307→login, APIs 403 sin admin.




Admin: gestión de opciones de oro (home_goldprice)

13 de julio de 2026 a las 00:35

adevopg · d9e6ff1

- lib/admin-gold.ts: list/create/delete sobre home_goldprice (id, gold_amount, price). - API: POST /api/admin/gold, DELETE /api/admin/gold/[id] (403 sin admin). - UI: /admin/gold con AdminGoldManager (alta ordenada por cantidad + borrado), enlace desde el índice del admin. - i18n es/en (Admin): manageGold, gold, goldAmount, goldPrice, goldUnit, noGold. Verificado: build OK, /admin/gold 307→login sin sesión, APIs 403 sin admin, columnas confirmadas en la migración Django.




Foro: paginación de temas (20/pág) y de posts (15/pág)

13 de julio de 2026 a las 00:32

adevopg · 36a4354

- lib/forum.ts: countTopics/countPosts + offset/limit en getTopics/getPosts (mismos límites que Django: FORUM_TOPICS_PER_PAGE=20, FORUM_POSTS_PER_PAGE=15). - components/Pagination.tsx: paginación reutilizable (ventana ±2, primera/última, prev/next) con enlaces ?page=N; no renderiza si solo hay una página. - Foro y tema aceptan ?page=N (clamp al rango válido). - El formulario de respuesta solo aparece en la última página; enlace a ella si no. - i18n: namespace Common (prev/next/page) + replyOnLastPage. Build OK. Sin datos de foro en acore_web (estado vacío correcto).





SÍGUENOS EN