Exemplos de script LDAP
Os exemplos de script a seguir presumem que você usa um Active Directory (AD) para o servidor LDAP.
Script de valores do atributo userAccountControl
Este exemplo testa a origem dos valores do atributo userAccountControl associados a um usuário desabilitado (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;
}Este é um exemplo usando uma verificação de bits:
if(source.u_useraccountcontrol & 2){
active = false;
}
Script do atributo userAccountControl
Este exemplo examina o atributo userAccountControl, mas não testa valores específicos. Ele também contém a opção de reativação de contas de usuário 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 do mapa de transformação onBefore
Este é um exemplo de um script do mapa de transformação onBefore. O script identifica registros desabilitados e que estão sendo inseridos. Se estiver ocorrendo uma inserção de um usuário desabilitado, a transformação da operação ignorará o registro.//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 membro DN
Este exemplo de script apresenta flexibilidade ao não contar com os valores de userAccountControl 546 e 514, mas, em vez disso, verifica se o usuário é um membro de um Nome diferenciado (DN) específico. É possível usar este script no campo Script do registro "Mapa de transformação da tabela" ou em um script do mapa de transformações 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;
}