# Roles y permisos

Roles por proyecto con cinco niveles en catorce secciones, que recortan el acceso sin agregar nunca permisos.

Fuente: https://ardumaker.com/docs/roles-y-permisos/

- Categoría: Proyectos y empresas
- Estado: Disponible
- Requisitos: Ser manager del proyecto para crear roles y asignarlos
- Herramientas MCP (Solo leen): `listar_miembros_proyecto`, `ver_proyecto`, `ver_contexto_inicial`

## ¿Qué permite hacer?

| Nivel | Qué puede |
| --- | --- |
| `ninguno` | No ve la sección |
| `ver` | Lee, no toca |
| `aportar` | Crea, y edita o borra solo lo suyo |
| `editar` | Modifica lo de cualquiera, sin borrar |
| `borrar` | Control total de la sección |

Las secciones configurables son: `proyecto`, `etapas`, `tareas`, `comentarios`, `adjuntos`, `calendario`, `grabaciones`, `miembros`, `recursos`, `github`, `logs`, `papelera`, `finanzas` y `finanzas_balance`. Leer y firmar reglamentos no se configura: nunca se le niega a nadie.

## ¿Cuándo conviene usarlo?

- Para sumar a un cliente que comente y suba archivos sin poder borrar el trabajo ajeno.
- Para que un colaborador vea solo su parte de las finanzas.

## ¿Cómo funciona en ArduMaker?

- Cada proyecto nace con 14 roles con permisos completos (`Client`, `Manager`, `Developer`, `DevOps`, `QA / Tester` y otros). No se pueden borrar, pero sí editar; el manager crea los suyos.
- Un rol **recorta** el acceso de alguien: nunca agrega permisos. Un miembro sin rol asignado puede todo.
- Dentro del proyecto manda el rol del proyecto, aunque la persona sea admin de la empresa. Solo el admin de sistema queda por encima.
- Es manager quien tiene un rol de manager, quien creó el proyecto, un admin de una empresa asociada o el admin de sistema. El manager administra roles y reglamentos, pero su propio rol también lo limita en las secciones.
- Una sección nueva que un rol no tiene escrita se resuelve con su nivel para secciones futuras.

## ¿Qué cambia realmente?

- Cambiar el rol de un miembro cambia sus permisos y qué reglamentos debe firmar, y queda en el historial.
- El detalle del proyecto omite los campos de las secciones que la persona no puede ver.

## Esquema

**Cómo se decide un permiso**

```text
Acceso base (miembro, admin o member de empresa asociada)
  ↓
Rol del proyecto (recorta por sección)
  ↓
Reglamento pendiente (frena la entrada hasta firmar)
  ↓
Permiso efectivo (mis_permisos en el detalle)
```

## Resultado esperado

Cada persona ve en el detalle del proyecto sus permisos efectivos por sección y si es manager, para que la interfaz muestre solo lo que puede hacer.

## Errores y resolución

- Un error de tipo `permiso_de_rol` significa que el rol no alcanza para esa sección.
- Un error de tipo `politica_pendiente` significa que falta firmar un reglamento.
- `Only the project manager can change a member's role`: solo el manager reasigna roles.

> **PRECAUCION:** Un rol creado a mano tiene, por defecto, nivel `ver` para secciones futuras: al activar una sección nueva, como finanzas, conviene revisar qué ve cada rol.

## Relación con MCP

Un agente MCP actúa con los permisos de su dueño, recortados por el alcance que se le dio. Puede leer miembros y permisos, pero **nunca** suma o quita miembros, cambia roles ni crea, edita o borra roles.

- `listar_miembros_proyecto`: miembros y su rol.
- `ver_proyecto`: incluye el bloque `permisos`.
- `ver_contexto_inicial`: alcance del agente y operaciones que ningún agente puede hacer.

Ver también [permisos MCP](https://ardumaker.com/docs/permisos-mcp) y [/mcp/docs](https://ardumaker.com/mcp/docs).

## Funciones relacionadas

- [Empresas](https://ardumaker.com/docs/empresas/)
- [Plantillas de proyecto](https://ardumaker.com/docs/plantillas/)
- [Firma de documentos](https://ardumaker.com/docs/firma-de-documentos/)
- [Gestión económica](https://ardumaker.com/docs/gestion-economica/)
- [Permisos del agente MCP](https://ardumaker.com/docs/permisos-mcp/)
- [Gestión de miembros](https://ardumaker.com/docs/gestion-de-miembros/)
