Exemples de scripts LDAP
Les exemples de script suivants supposent que vous utilisez un Active Directory (AD) pour votre serveur LDAP.
Script des valeurs d’attributs userAccountControl
Cet exemple teste la source des valeurs d’attribut userAccountControl associées à un utilisateur désactivé (514 ou 546).//Deactivate LDAP-disabled users during transform based on 'userAccountControl' attribute
if(source.u_useraccountcontrol == '514' || source.u_useraccountcontrol == '546'){
target.active=false;
target.locked_out=true;
}Voici un exemple utilisant une vérification au niveau du bit :
if(source.u_useraccountcontrol & 2){
active = false;
}
Script d’attribut userAccountControl
Cet exemple examine l’attribut userAccountControl mais ne teste pas de valeurs spécifiques. Il offre également la possibilité de réactiver les comptes d’utilisateurs LDAP./*
* Deactivate LDAP-disabled users during transform based on 'userAccountControl' attribute
* Convert the userAccountControl attribute back to a hex value
*/
var ctrl = parseInt(source.u_useraccountcontrol, 10);
ctrl = ctrl.toString(16);
/*
* The only digit we care about is the final one
* A final hex digit value of '2' in 'ctrl' means disabled
*/
if(ctrl.substr(-1) == "2"){
//Deactivate and lock the user account
target.active = false;
target.locked_out = true;
//Ignore any insert of a disabled record
if(action == 'insert'){
ignore = true;
}
}
/* Optional: Uncomment else block to reactivate and unlock the user account
else {
target.active = true;
target.locked_out = ctrl.substr(-2, 1) == "1";
}
*/Script de carte de transformation onBefore
Voici un exemple de script de carte de transformation onBefore. Le script identifie les enregistrements désactivés et les enregistrements en cours d’insertion. Si une insertion d’un utilisateur désactivé se produit, l’opération de transformation ignore l’enregistrement.//Ignore any insert of a disabled record as defined by the 'userAccountControl' attribute
var uc = source.u_useraccountcontrol;
if((uc == '514' || uc == '546') && action == 'insert'){
ignore = true;
}Script de membre DN
Cet exemple de script introduit une flexibilité en ne s’appuyant pas sur les valeurs 546 et 514 de userAccountControl, mais en vérifiant si l’utilisateur est membre d’un nom unique (DN) particulier. Vous pouvez utiliser ce script dans le champ Script de l’enregistrement « Carte de transformation de table » ou dans un script de carte de transformation onBefore.//Deactivate LDAP-disabled users during transform based on OU membership in 'dn'
if(source.u_dn.indexOf('OU=Disabled Accounts') > -1){
target.active = false;
target.locked_out = true;
}