openxava
Blog

24 de septiembre del 2025

XavaPro 7.6 disponible


XavaPro 7.6 tiene las siguientes novedades:

  • Firma manuscrita para móvil y escritorio mediante la anotación @HandwrittenSignature.
  • Forzar letras mayúsculas y minúsculas y forzar caracteres especiales para la contraseña como opciones en Configuración.
  • Se añadió RolesFilter para restringir la visibilidad de registros según los roles de usuario.
  • Los usuarios se unen automáticamente a las organizaciones en el primer acceso cuando están habilitados los usuarios compartidos.
  • Las propiedades de la política de contraseñas en naviox.properties se incluyen en la sección de seguridad de la documentación.
  • Las propiedades en @Tab editableProperties respetan la configuración de solo lectura definida a nivel de rol.
  • En la interfaz móvil no se muestran imágenes para cada registro en la lista.
  • En la interfaz de lista móvil, los campos de una referencia se agrupan bajo una sola etiqueta.
  • Funciona con OpenXava 7.6.
Más información sobre XavaPro

Firma manuscrita

Para permitir al usuario firmar a mano y guardar su firma en una propiedad, has de anotar la propiedad con @HandwrittenSignature:

import com.openxava.annotations.*; 

...

@HandwrittenSignature
@Column(length=32)  
private String firmaCliente;

Nota como la anotación está en el paquete com.openxava.annotations (de XavaPro) y no en org.openxava.annotations.

La propiedad se visualizaría así:

El usuario podrá firmar con el dedo o un lapiz para pantallas táctiles, especialmente pensado para móviles y tablets, aunque también es posible firmar usando el ratón. Así quedaría en el móvil:

El tipo de la propiedad es un String de 32 caracteres donde se almacena un id, no la firma en sí. Las firmas se pueden almacenar en el sistema de archivos o en la base de datos, usando el mismo mecanismo que @File y @Files. También es posible manipular las firmas por código con FilePersistorFactory como con @File y @Files.

Contraseña más fuertes

Tenemos dos nuevas opciones en el módulo de configuración que nos permiten obligar al usuario a usar contraseñas más fuertes:

Son la opciones enmarcadas en rojo: Obligar mayúsculas y minúsculas en contraseña y Obligar caracteres especiales en contraseña.

Restringir datos por rol

XavaPro 7.6 incluye un nuevo filtro llamado RolesFilter que permite restringir el acceso a los datos según los roles del usuario actual. Este filtro funciona comparando los roles del usuario con una propiedad de la entidad que contiene un nombre de rol.

Para implementar esta restricción, sigue estos pasos:

1. Define una propiedad para el rol en tu entidad

@Column(length=30, columnDefinition = "VARCHAR(30) DEFAULT 'user'")
private String rol;

Esta propiedad almacenará el nombre del rol que tiene permiso para acceder al registro. Puedes establecer un valor por defecto si lo deseas, como en el ejemplo anterior donde el valor predeterminado es 'user'.

2. Configura el filtro en la anotación @Tab

@Tab(baseCondition = "${rol} IN (?)",
    filter=com.openxava.naviox.filters.RolesFilter.class,
    properties="anyo, numero, fecha, cliente.numero, cliente.nombre, ...")

La condición base ${rol} IN (?) indica que se filtrarán los registros donde el valor de la propiedad rol esté incluido en la lista de roles del usuario actual. El filtro RolesFilter proporciona automáticamente esta lista de roles.

3. Cómo funciona

Cuando un usuario accede a la lista, el filtro RolesFilter obtiene todos los roles asignados al usuario actual y los utiliza para filtrar los datos. Por ejemplo:

  • Si un usuario tiene asignado solo el rol 'user', solo verá los registros donde la propiedad rol tenga el valor 'user'.
  • Si un usuario tiene asignados los roles 'admin' y 'user', verá los registros donde la propiedad rol tenga el valor 'admin' o 'user'.

Esto permite implementar un sistema de acceso a datos basado en roles, donde diferentes tipos de usuarios pueden ver diferentes conjuntos de datos según sus roles asignados.

Recuerda importar las clases necesarias:

import com.openxava.naviox.filters.RolesFilter; 

Fíjate que el paquete es com.openxava.naviox, no org.openxava.

Mejor usabilidad con usuarios compartidos

Cuando usas multiempresa con XavaPro cada empresa tiene su propio grupo de usuarios totalmente independiente de las otras organizaciones. Sin embargo, puedes configurarlo para tener el mismo grupo de usuarios para todas las organizaciones. Eso se hace marcando la opción correspondiente en el módulo de configuración:

Esta característica ha estado disponible desde hace tiempo. Con "Usuarios compartidos" activados los usuarios y contraseñas para todas las organizaciones son los de la aplicación raíz. Has de crear los usuarios en la aplicación raíz solamente. Lo nuevo en la versión 7.6 es que cuando estos usuarios accedan a una organización por primera vez se unirán automáticamente a ella.

Es decir, ya no necesitan responder esta pregunta superflua, como hasta ahora:

Pruébalo tu mismo

Demo: https://www.openxava.org/xavaprotest (Usuario: demo, Contraseña: demo)

Si quieres probar las facilidades de administración responde a este correo preguntando por la clave del administrador.
Si quieres probar las características móviles accede a la URL de arriba usando tu teléfono móvil.

Te invitamos a que vayas a la página de XavaPro para ver más cosas.

Si eres un cliente Enterprise recibirás un correo electrónico con la actualización a la edición Enterprise.

blog comments powered by Disqus

English