En Dynamics 365 Business Central no es fácil verificar si un usuario tiene un permiso específico sobre un objeto específico.

La tabla de Permission Range ahora es una tabla del sistema que no se puede usar en un entorno SaaS, la tabla de  License Permission no le otorga permisos de usuario específicos y utiliza los métodos ReadPermission y WritePermission (que pueden determinar si un usuario tiene permiso de lectura y escritura en el objeto) solo está disponible para objetos de tabla y, a menudo, esto no es suficiente si tiene que implementar complejas comprobaciones de seguridad (por ejemplo, si desea probar si su usuario tiene permisos de ejecución en una codeunit específica).

Para lograr ese objetivo, ahora podemos usar la codeunit Id 9852 Effective Permissions Mgt. ,que tiene una función llamada PopulatePermissionRecordWithEffectivePermissionsForObject que le permite ocupar un registro de Permiso para un objeto específico y un usuario específico. Este método tiene la siguiente estructura:

PopulatePermissionRecordWithEffectivePermissionsForObject(var Permission: Record Permission; PassedUserID: Guid; PassedCompanyName: Text[50]; PassedObjectType: Option; PassedObjectId: Integer)

Para mostrar cómo usar este método, creamos un procedimiento que recibe como entrada el objeto para verificar los permisos y luego recupera los permisos para el usuario específico en este objeto. El código es el siguiente:

Como podemos ver, PopulatePermissionRecordWithEffectivePermissionsForObject recibe los parámetros necesarios y completa el registro de permiso temporal que estamos pasando. Luego puede verificar el registro de permisos recién creado según lo necesite (aquí, por ejemplo, estoy verificando el permiso de Ejecución y si el usuario no tiene permiso de ejecución en el objeto dado, podemos actuar como consecuencia).

Para llamar al procedimiento CheckUserPermission anterior para un objeto específico (por ejemplo, la codeunit 80 – Sales Post), podemos hacer lo siguiente:

Espero que os sirva de ayuda.  🙂

Conchi Beltrán Reyes

Programación Dynamics
ABD Consultoría y Soluciones Informáticas

Escríbenos una nota o llámanos!

Suscríbete a nuestra Newsletter!

Visítanos en Sevilla o en las redes!

CONTACTO

Contacto

Política de privacidad

2 + 3 =


Los datos personales facilitados voluntariamente por usted, a través del presente formulario web serán tratados, por ABD Informática, S.L. como responsable del tratamiento, con la finalidad de atender su solicitud, consulta, queja o sugerencia, sin que se produzca comunicaciones o cesiones de datos y conservados durante los plazos necesarios para atender su solicitud. Puede usted ejercer los derechos de acceso, rectificación o supresión de sus datos, dirigiéndose a arco@abd.es, para más información al respecto, puede consultar nuestra política de privacidad.




Mostrar más/menos

NEWSLETTER

DÓNDE ESTAMOS

Calle Alberche, 4A, 1º Derecha


Sevilla, (41005) España

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies

Compártelo

Comparte este post con tus contactos!