1/2 - Políticas de seguridad a nivel de registro

En ocasiones deseamos que algunos usuarios tengan restringido el acceso a ciertos datos, esto lo podemos conseguir mediante las políticas de seguridad, las cuales nos permiten filtrar los datos antes de que estos sean mostrados al usuario.

En este post realizaremos un ejemplo donde los usuarios que pertenecen a un rol sólo podrán ver los almacenes indicados en la query.


Para empezar nos crearemos una política.



Cada política tiene asociada una query; así que nos crearemos una consulta con un rango con el valor por el que queremos filtrar.

En este ejemplo quiero que los usuarios de cierto rol sólo puedan trabajar con el almacén '11'.



Una vez tenemos la query creada deberemos asignársela a la política.



Como no quiero tocar los roles estándar, me crearé un nuevo rol.




Para comprobar que la política funciona correctamente, he creado un formulario muy simple donde se visualizan todos los almacenes y lo he agregado a un menú.




Como no me gusta asignarle los formulario directamente al rol, creamos un privilegio donde asignarle el menú item.



En los puntos de entrada de los privilegios precaución con el nivel de acceso, le daré el nivel más bajo, es decir, sólo lectura.



Cuando lo tengamos todo preparado, le asignaremos el role a la política.



Como se ve en la imagen superior, en la propiedad Contextype le he asignado el valor RoleName y en el propiedad RoleName le he asignado el nuevo role, tal y como lo hemos dejado esta política se aplicará a un este rol.


Una vez realizado esto faltará asignarle el rol al usuario.




La propiedad Enabled habilitará la política y ConstrainedTable permitirá que todas aquellas tablas que tengan relación con la consulta también vendrán filtradas.




Si entramos con el usuario con los permisos y entramos a nuestro formulario de prueba, veremos que este sólo nos muestra los almacenes con valor '11'.





Agregaremos más permisos al rol para ver más formularios.




Ahora si entramos en los pedidos y seleccionamos un artículo, veremos que sólo nos permiten el almacén filtrado.



Precaución a la hora de asignar permisos puede que nos de errores mientras navegamos por Ax.

Comentarios