Accorder dynamiquement des permissions aux utilisateurs

Traduit automatiquement de Deepl

Après la possibilité d’utiliser votre propre système de gestion des utilisateurs finaux et la commande SET USER ALIAS vous vous demandez peut-être comment gérer les autorisations des utilisateurs finaux sans créer plusieurs comptes d’utilisateur 4D. Continuez à lire car cette version de la fonctionnalité a la réponse !

Les développeurs 4D ont souvent besoin de gérer les utilisateurs finaux avec leur propre système d’annuaire(par exemple, d’un développement interne à un développement externe avec LDAP ou SSO). Une solution consistait à créer autant de comptes utilisateurs 4D que de droits, puis à passer de l’un à l’autre.

4D v18 R4 rend les choses plus intuitives en vous permettant de définir les droits des utilisateurs avec des groupes … dynamiquement.

La façon la plus simple de procéder est de créer un compte utilisateur par défaut sans appartenance à un groupe :

Vous pouvez ensuite créer un groupe pour chaque droit que vous souhaitez gérer.

blank

Au moment de l’exécution, vous pouvez toujours utiliser la commande SET USER ALIAS pour définir le nom de l’utilisateur afin qu’il apparaisse partout dans la base de données.

Maintenant, avec la nouvelle commande SET GROUP ACCESS, vous pouvez également définir dynamiquement l’appartenance à un groupe.

Notez que ces deux commandes ne sont pas disponibles du côté serveur.

Voici un exemple de code exécuté sur un client distant après une authentification personnalisée de l’utilisateur :

// 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)

Vous pouvez définir l’accès du groupe d’utilisateurs actuel sur aucun si vous le souhaitez :

SET GROUP ACCESS(New collection)

Vous pouvez rétablir l’accès au groupe d’utilisateurs actuel tel qu’il est enregistré dans le fichier répertoire :

SET GROUP ACCESS

La nouvelle commande Get group access vous permet de récupérer l’appartenance au groupe actuel :

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

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

Tous les accès de groupe donnés n’affectent pas le répertoire utilisateur / groupe.

C’est maintenant à votre tour de l’essayer. Gérez vos utilisateurs et vos groupes de manière dynamique … comme vous le souhaitez !

Avatar
- Product Owner -Damien Fuzeau a rejoint l'équipe 4D Product en février 2019. En tant que Product Owner, il est en charge de la rédaction des user stories, puis de leur traduction en spécifications fonctionnelles. Son travail consiste également à s'assurer que les implémentations de fonctionnalités livrées répondent aux besoins des clients.Damien est diplômé de l'Université de Nantes en génie logiciel. Il a passé plus de 23 ans dans son ancienne entreprise, d'abord en tant que développeur (découverte de 4D en 1997), puis en tant que responsable de l'ingénierie et architecte logiciel. Cette société est un partenaire OEM de 4D et a déployé des logiciels d'entreprise basés sur 4D pour des milliers d'utilisateurs, sur des centaines de serveurs. Damien est donc habitué au développement et au déploiement 4D dans un contexte multi-langues.