Skip to content

Etapa 0: permisos y atribucion para edicion de mapas #4

Description

@leocagli

Parte de #2 (modo construcción). Depende de la capa de persistencia.

Problema

Editar el mundo es una operación destructiva: un error borra una ciudad. Hoy no hay ningún control de quién puede tocar qué, porque no hay edición de mapas en absoluto.

Lo que ya existe

La API tiene un mecanismo de admin funcionando, que es el enganche natural:

GAME_DATA_ADMIN_EMAIL
GAME_DATA_ADMIN_ACCOUNT_ID
GAME_DATA_ADMIN_PROXY_TOKEN

Se usa en las rutas PUT /admin/game-data/* que ya existen para objetos, NPCs, recetas y balance.

Alcance

  1. Extender ese mecanismo a las rutas de edición de mapas.
  2. Permisos por mapa, no globales: un colaborador debería poder editar el mapa que se le asignó sin poder tocar Ullathorpe.
  3. Todas las mutaciones quedan atribuidas a una cuenta (quién, qué, cuándo).
  4. Rechazar ediciones sobre mapas marcados como protegidos (los mapas de ciudad principales, por ejemplo).

Criterios de aceptación

  • Una cuenta sin permiso recibe 403 al intentar editar un mapa
  • Una cuenta con permiso sobre el mapa 50 no puede editar el mapa 1
  • Toda mutación registra la cuenta que la hizo
  • Los mapas protegidos rechazan escritura incluso para admins, salvo un override explícito
  • Tests de integración cubriendo los cuatro casos anteriores

Archivos relevantes

  • api/src/config.ts (líneas 97 a 99: las tres variables de admin)
  • api/src/server.ts (rutas /admin/game-data/* como referencia)

Nota

GAME_DATA_ADMIN_* no está documentado en .env.example. Conviene documentarlo como parte de esta issue.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardThird CampaignCampaign: Third CampaignbountyIssue con recompensa asignadaenhancementNew feature or requestetapa-0-baseEtapa 0 - persistencia y permisos (desbloquea el resto)grantfoxPublicada en la campana de GrantFoxmodo-construccionModo construccion in-game: editor de mapas en el navegadorreward-50-usdRecompensa 50 USD - complejidad media

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions