#/usr/bin/perl # on abandonne python pour perl # ce script est capable de rajouter l'attribut description avec une valeur issue # d'un fichier csv passé en argument use strict; use Net::LDAP; use Text::CSV; my $ldapserver = "localhost"; my $binddn = "cn=manager,o=od"; my $bindpw = "123Soleil" ; my $ldap = Net::LDAP->new( $ldapserver ) or die "$@" ; my $mesg = $ldap->bind( $binddn, password => $bindpw ); $mesg->code and die $mesg->error; # check for errors my $csv = Text::CSV->new({ sep_char => ';' }) ; my $file = $ARGV[0] or die "Need to get CSV file on the command line\n" ; open(my $data, '<', $file) or die "Could not open '$file' $!\n"; my @cols = @{$csv->getline ($data)}; foreach my $c (@cols){ print "columne: ". $c ."\t" ; } my $row = {} ; $csv->bind_columns (\@{$row}{@cols}); while ($csv->getline ($data)) { my $dn = $row->{dn} ; # my $mesg = $ldap-> search( # base=> $dn, # scope=> "base", # filter=> "(description=".$attr1.")") ; # print $mesg->count() ; # if ($mesg->count() != 0) { next ; } my $idTechnique = $row->{idTechnique} ? $row->{idTechnique} : "xx" ; my $question1 = $row->{question1} ? $row->{question1} : "xx" ; my $question2 = $row->{question2} ? $row->{question2} : "xx" ; my $question3 = $row->{question3} ? $row->{question3} : "_" ; my $reponse1 = $row->{reponse1} ? $row->{reponse1} : "_" ; my $reponse2 = $row->{reponse2} ? $row->{reponse2} : "_" ; my $reponse3 = $row->{reponse3} ? $row->{reponse3} : "_" ; my $siren = $row->{siren} ? $row->{siren} : "" ; my $civilite = $row->{civilite} ? $row->{civilite} : "" ; my $userPassword = $row->{userPassword} ; my $userPassword = `slappasswd -n -s $userPassword` ; print $dn."\t >>".$question3 ."<<\n"; my $mesg = $ldap-> modify( $dn, changes=> [ replace => [ 'userPassword' => $userPassword ], ] ) ; $mesg->code and warn $mesg->error; # check for errors }