Permisos de acceso a opciones de menú

Con cierta frecuencia se da el caso de que los permisos predefinidos para acceder a una opción de menú de KMKey no se ajusten a las necesidades del cliente. Por ejemplo, la opción de gestionar previsiones económicas está protegida por el mismo permiso que la opción de editar la planificación de un proyecto, porque en la mayoría de casos la misma persona planifica el proyecto y define su previsión económica. Pero cuando esto no sea así, también temenos la opción de cambiarlo mediante configuración.

Para ello debemos entrar en el ZMI de nuestro site (url/manage), ir a el objeto portal_actions, y buscar la opción de menú que deseamos cambiar. Siguiendo el ejemplo anterior, sería la que se llama "Economics Plan". Imaginemos que queremos restringir está opción a directores comerciales, dirección, financieros y responsables de área. Tendríamos que editar al "Condition Expression" y añadir una expresión que nos diga si el usuario actual tiene alguno de esos perfiles en el contexto en el que estamos. Eso se puede expresar de la siguiente forma:

and member.getUser() and len([role for role in member.getUser().getRolesInContext(unit) if role in ['dir-comercial', 'direccion', 'financiero', 'resp-area']])

O sea, el usuario está autentificado, y alguno de sus perfiles en el contexto actual coincide con los permitidos.

Finalmente, y no por ello menos importante, debemos marcar la opción de "Block import ?", cosa que nos garantiza que nuestra expresión personalizada no será substituida por futuras actualizaciones del programa.

Etiquetas: