Ir al contenido

Cree roles personalizados para su equipo

Crear un rol propio de su granja —por ejemplo, veterinario o encargado de alimentación— ajustando sus permisos al detalle y dejarlo listo para asignarlo a uno o más miembros.

  • Cuenta activa y rol Propietario o Administrador (los demás roles ven la página solo en modo lectura).
  • Al menos un miembro registrado en el equipo si quiere asignar el rol al final (ver Equipo).

Un rol es el conjunto de acciones que un miembro puede ejecutar dentro de la organización: ver reproductoras, crear inseminaciones, registrar consumos, ver tesorería, etc. Cuando invita a alguien al equipo, le asigna un rol; el sistema usa ese rol para mostrar u ocultar opciones del menú y bloquear acciones desde el servidor.

PorciControl trae dos clases de roles:

| Clase | Editables | Cuándo se usan | |---|---|---| | Roles del sistema | No (inmutables) | Vienen pre-cargados en cada organización. Cubren los cuatro perfiles más comunes: propietario, administrador, miembro y operario. | | Roles personalizados | Sí (por su organización) | Los crea el propietario o un administrador desde esta página. Útiles cuando ningún builtin encaja —por ejemplo, un veterinario externo que solo necesita acceso a salud y reproducción. |

Desde la barra lateral, expanda Configuración y pulse Roles. Va a ver tres secciones: los roles del sistema (read-only), la matriz de permisos (plegada por defecto) y los roles personalizados —vacíos hasta que cree el primero.

Página de Roles con la sección de builtins resaltada en amarillo, una flecha apuntando al botón Duplicar del Operario, y la sección de Roles personalizados resaltada en azul.

Tiene dos puntos de partida marcados arriba:

  • Punto 1 — Duplicar un builtin: cada rol del sistema tiene su botón Duplicar. Es el camino recomendado cuando ya hay un builtin parecido a lo que necesita.
  • Punto 2 — Crear desde cero: pulse Crear rol arriba a la derecha de “Roles personalizados”. Útil cuando ningún builtin se parece al perfil que quiere armar.

2. Pulse “Duplicar” sobre el rol más parecido

Sección titulada «2. Pulse “Duplicar” sobre el rol más parecido»

En este ejemplo armamos un rol veterinario. El perfil más cercano es el Operario, que ya trae acceso a reproductoras, inseminaciones, chequeos de preñez y tareas. Solo falta sumarle acceso a partos y productos sanitarios.

Pulse Duplicar en la fila del Operario. El formulario se abre debajo, con dos cosas pre-cargadas:

Formulario de creación abierto con el campo Nombre con el valor "nuevo_operador" resaltado, y la tabla de permisos heredados marcados (Reproductoras, Inseminaciones, Chequeos de preñez, Consumo de alimento, Consumo sanitario, Tareas).

  1. Nombre del rol: viene con nuevo_<rol> como sugerencia. Debe cambiarlo: los cuatro nombres del sistema (owner, admin, member, operador) están reservados y el servidor los rechaza.
  2. Permisos heredados: la tabla ya viene con todas las casillas que tiene el Operario. Sirven como punto de partida —agregue o quite lo que haga falta.

Borre nuevo_operador y escriba el nombre real del rol —en este ejemplo, veterinario. Luego marque las casillas que quiera agregar y desmarque las que sobren.

Formulario con el nombre cambiado a "veterinario" resaltado en amarillo, y la casilla "Partos — Ver" recién marcada resaltada en rojo.

La tabla está organizada en dos zonas:

| Columna | Qué incluye | |---|---| | Ver / Crear / Editar / Borrar | Las acciones estándar de cada recurso. Si una celda muestra , esa acción no aplica al recurso (por ejemplo, no hay “Borrar reproductora”). | | Especiales | Acciones específicas del recurso: Transicionar etapa en Lotes, Ejecutar/Reagendar/Saltar en Tareas, Revertir en Consumo de alimento, etc. |

El nombre se valida apenas lo escribe:

  • Entre 2 y 32 caracteres.
  • Solo letras, números, espacios y guion bajo (regex ^[a-zA-Z0-9_ ]{2,32}$).
  • Único por organización, sin distinguir mayúsculas (Veterinario y veterinario se consideran iguales).
  • Reservados: owner, admin, member, operador (en cualquier capitalización).

Si lo que escribió no cumple alguna regla, aparece un mensaje rojo debajo del campo y el botón Crear rol queda deshabilitado hasta que lo corrija.

El botón Crear rol queda activo cuando el nombre es válido y hay al menos un permiso marcado. Pulse para guardar.

El nuevo rol aparece inmediatamente en la tabla Roles personalizados, con su nombre, conteo de permisos y los botones de acción Editar y Eliminar. Desde ese momento ya está disponible para asignarlo a miembros.

Tabla "Roles personalizados" con una fila resaltada en amarillo mostrando el rol Veterinario, 13 permisos, y los botones Editar y Eliminar a la derecha.

  1. Vaya a Configuración → Equipo.
  2. En la fila del miembro, abra el selector de rol —el dropdown ahora incluye los cuatro builtins más todos los roles personalizados que creó.
  3. Elija el rol y guarde. El cambio es inmediato; el miembro debe refrescar su pestaña para que el menú se ajuste a sus nuevos permisos.

También puede invitar miembros nuevos directamente con un rol personalizado: en Equipo → Invitar miembro, el selector de rol funciona igual.

En cada fila de la tabla “Roles personalizados” tiene dos acciones:

  • Editar abre el mismo formulario con los datos cargados. Cambie nombre o permisos y guarde. Los miembros que ya tienen ese rol ven el cambio en tiempo real.
  • Eliminar abre un modal de confirmación que exige reasignar a los miembros afectados a otro rol antes de borrar. No se puede dejar a un miembro sin rol —si elige reasignar a member, todos los miembros que tenían el rol borrado pasan a member en la misma operación atómica.

La sección Matriz de permisos está plegada por defecto porque ocupa mucho espacio, pero es la referencia más completa de qué hace cada rol del sistema. Para abrirla, pulse el encabezado.

Matriz de permisos desplegada con el encabezado "Mostrar / ocultar" resaltado en azul. La tabla muestra cada par recurso-acción como fila y los 4 roles del sistema como columnas, con ✓ donde el rol tiene permiso y — donde no.

Cada fila es un par recurso-acción (por ejemplo, Reproductoras — Ver), y las cuatro columnas son los roles del sistema. Un indica que el rol tiene el permiso; un , que no lo tiene. La columna que corresponde a su propio rol está marcada con un badge “Su rol”.

Útil para responder de un vistazo preguntas como “¿el operario puede ver inseminaciones?” o “¿quién puede registrar una venta?”.

“El nombre que escribí no se acepta” — Revise los tres puntos en el orden: caracteres permitidos (regex), longitud (2–32) y nombres reservados (los cuatro builtins). El mensaje rojo debajo del campo indica cuál regla falló.

“Pulsé Crear rol y salió ‘PRIVILEGE_ESCALATION’” — El servidor detectó que está pidiendo permisos que su rol actual no tiene. Solo el propietario tiene los 54 permisos; un administrador tiene los mismos menos transferir propiedad. Si un administrador quiere crear un rol con un permiso reservado al propietario, no se le permite.

“Creé el rol pero no aparece en el selector de Equipo” — Asegúrese de que la otra pestaña esté refrescada. El selector consume el catálogo en el momento en que se carga la página; si abrió Equipo antes de crear el rol, recargue.

“Eliminé un rol y los miembros quedaron ‘sin permisos’” — No debería pasar: el modal de eliminación exige reassignTo antes de confirmar. Si lo ve, reporte: la operación de borrado debe ser atómica.

“Llegué al límite de 50 roles personalizados” — Es el tope máximo por organización. Para crear otro, elimine alguno que no esté en uso o consolide roles parecidos.

“Marqué una casilla pero al guardar quedó desmarcada” — Probablemente es una acción reservada (organization:delete, member:delete o las acciones de gestión de roles). El servidor las filtra al persistir. La UI debería mostrarlas en gris claro deshabilitadas; si una se ve activa pero el servidor la rechaza, reporte el caso.

“Un miembro con rol personalizado no ve el menú de Configuración → Roles” — Es intencional. La gestión de roles personalizados está reservada a propietario y administrador, sin importar qué permisos tenga el custom role. Es una garantía de seguridad: nadie puede fabricarse permisos a sí mismo.