Todos los componentes (244)
Roles de las personas
Gestión · UserRoleEditor
Qué es y cuándo usarlo
Las personas con acceso a algo y el rol de cada una: cambiar el rol, buscar por nombre o correo y quitar el acceso con confirmación.
Cuándo usarlo
- La pantalla de miembros de un proyecto, de una empresa o de un espacio compartido.
rolesson los roles posibles, cada uno con una línea de lo que puede hacer (description), que sale en el desplegable.onRoleChangecambia un rol;onRemove, si se pasa, quita el acceso tras confirmarlo. Una persona conlocked(la propietaria, quien está editando) no se toca.- La búsqueda sale sola con más de ocho personas (
searchablela fuerza).
Cuándo no
- Editar qué puede hacer cada rol:
PermissionMatrix. - Invitar a alguien nuevo: un formulario aparte; aquí solo se gestiona a quien ya tiene acceso.
- No concede nada por sí solo: el servidor decide si el cambio vale.
Teclado: cada fila tiene su desplegable y su botón de quitar; quitar pide confirmación.
Accesibilidad: cada desplegable se llama con la persona («Rol de Pablo Sanz») y cada cambio se anuncia; un fallo se dice en una alerta.
Aspecto fino: una lista con borde; en pantalla estrecha el desplegable baja a su propia línea.
Cómo se ve
3 personas
- Aitor Mena[email protected]No se puede cambiarAdministradorLo ve y lo cambia todoGestorPedidos y clientesSolo lectura
- Marta Ruiz[email protected]AdministradorLo ve y lo cambia todoGestorPedidos y clientesSolo lectura
- Lucía Ferrer[email protected]AdministradorLo ve y lo cambia todoGestorPedidos y clientesSolo lectura
<UserRoleEditor
label="Quién puede entrar"
users={usuarios}
roles={roles}
searchable
onRoleChange={cambiarRol}
onRemove={quitarUsuario}
/>Props
Se importa con import { UserRoleEditor } from '@amset/ui'. Las obligatorias van marcadas.
| Prop | Tipo | Para qué sirve |
|---|---|---|
labelobligatoria | string | Que acceso se edita («Personas del proyecto»). Obligatorio. |
onRoleChangeobligatoria | (userId: string, role: string) => void | Promise<void> | Cambiar el rol de una persona. Si lanza o rechaza, se dice y el rol se queda como estaba. El servidor decide si se puede. |
rolesobligatoria | readonly RoleOption[] | — |
usersobligatoria | readonly RoleUser[] | — |
className | string | Se une a las clases de la biblioteca, no las sustituye. |
onRemove | (userId: string) => void | Promise<void> | Quitar el acceso a una persona, con confirmacion. Sin esto, no se puede quitar a nadie. |
searchable | boolean | Un campo para buscar por nombre o correo. Por defecto, si hay mas de ocho personas. |
Acepta además los atributos del elemento que pinta: className, style, data-*, aria-* y sus eventos.
En el banco de pruebas
Cada estado y cada variante, para tocarlos de uno en uno, en su ficha de ui.amset.tech:
