Skip to content

Puntos de acopio · roles de voluntario entrega/recogida + selector de rol #208

Description

@vgpastor

@
Continuación de #159 / PR #190 (merge #199), que dejó la base: scope entity(resource), rol point_manager y panel "Responsables del punto" (solo concede point_manager).

Objetivo

Un centro logístico (punto de acopio) debe poder tener uno o varios responsables (ya cubierto) y varios voluntarios con dos roles operativos diferenciados:

  • Recogida (intake): recepción de donaciones en el punto.
  • Entrega (dispatch): salida/entrega de material.

Alcance

  • Dos roles nuevos en role-catalog.ts con defaultScopeType: entity (entityType resource):
    • point_intake_volunteer (recogida): intake:receive, intake:read, container:read, resource:read.
    • point_dispatch_volunteer (entrega): shipment:read, container:read, resource:read (+ manifest:sign/shipment:track si firman/despachan salidas — decidir).
  • Selector de rol en resource-grants-panel.tsx (hoy roleId="point_manager" hardcodeado) + allowlist server-side de roles concedibles a entity(resource) en el server action / controller.
  • La fila del panel debe mostrar el rol real (grant.roleId → etiqueta localizada), no "Responsable de punto" fijo.

Decisión de gobernanza (bloqueante para el set de permisos)

Por la atenuación (GrantRole regla 2: quien concede debe poseer ⊇ los permisos del rol concedido sobre la cadena del punto):

  • Si el responsable del punto da de alta a sus voluntarios → point_manager necesita role:grant y la unión de permisos de ambos roles voluntarios.
  • Si solo el coordinador de la emergencia gestiona personal → basta alinear los permisos de emergency_coordinator (hoy le faltan manifest:sign y shipment:track para delegar una entrega que los use).

Definir cuál de los dos modelos antes de cerrar permisos.
@

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions