Conceder permisos a los usuarios de forma dinámica

Traducido automáticamente de Deepl

Tras la posibilidad de utilizar su propio sistema de gestión de usuarios finales y el SET USER ALIAS puede que se pregunte cómo puede gestionar los permisos de los usuarios finales sin crear múltiples cuentas de usuario 4D. Siga leyendo porque esta función tiene la respuesta.

Los desarrolladores 4D a menudo necesitan gestionar usuarios finales con su propio sistema de directorio(por ejemplo, de un desarrollo interno a uno externo con LDAP o SSO). Una solución era crear tantas cuentas de usuario 4D como derechos, y luego cambiar de una a otra.

4D v18 R4 hace las cosas más intuitivas al permitirle establecer los derechos de los usuarios con los grupos … dinámicamente.

La forma más fácil de hacerlo es crear una cuenta de usuario por defecto sin pertenencia a ningún grupo:

Entonces puedes crear un grupo para cada derecho que quieras gestionar.

blank

En tiempo de ejecución, todavía puede utilizar el comando SET USER ALIAS para establecer el nombre de usuario de manera que aparezca en todas las partes de la base de datos.

Ahora, con el nuevo comando SET GROUP ACCESS, también puede establecer dinámicamente la pertenencia a un grupo.

Tenga en cuenta que estos dos comandos no están disponibles en el lado del servidor.

Aquí hay un ejemplo de código ejecutado en un cliente remoto después de la autenticación de usuario personalizada:

// Set my own user field as alias
SET USER ALIAS([MyUserTable]Name)

// Set user groups following rights
C_COLLECTION ($userGroups)
$userGroups :=New collection
If([MyUserTable]4DWriteProAccess)
$userGroups .push("4D Write Pro")
End if
If ([MyUserTable]4DViewProAccess)
$userGroups .push("4D View Pro")
End if
SET GROUP ACCESS ($userGroups
)

Si lo desea, puede establecer el acceso del grupo de usuarios actual como ninguno:

SET GROUP ACCESS(New collection )

Puedes restablecer el acceso del grupo de usuarios actual a como está almacenado en el archivo de directorio:

SET GROUP ACCESS

El nuevo comando Get group access te permite recuperar la pertenencia al grupo actual:

SET GROUP ACCESS(New collection("4D View Pro"; "4D Write Pro"))

$collection :=Get group access
// $collection contiene ["4D View Pro", "4D Write Pro"]

Todos los accesos a grupos dados no afectan al directorio de usuarios/grupos.

Ahora es tu turno de probarlo. Gestione sus usuarios y grupos dinámicamente… ¡como usted quiera!

Avatar
• Propietario de producto - Damien Fuzeau se ha unido al equipo de 4D Product en febrero de 2019. Como Propietario de producto, está a cargo de escribir historias de usuario, y luego traducirlas a especificaciones funcionales. Su trabajo también implica asegurarse de que las implementaciones de funcionalidades entregadas estén cumpliendo con las necesidades del cliente. Damien es licenciado en ingeniería de software por la Universidad de Nantes. Estuvo más de 23 años en su anterior empresa, primero como desarrollador (descubriendo 4D en 1997), y más tarde como gerente de ingeniería y arquitecto de software. Esta compañía es un Partner OEM de 4D y ha desplegado softwares empresariales basados en 4D para miles de usuarios, en cientos de servidores. Por lo tanto, Damien está acostumbrado al desarrollo y despliegue de 4D en un contexto multilingüe.