support csv en utf8

remplacement phonenumber par attribut standard telephoneNumber
verification definition mot de passe
This commit is contained in:
2019-10-24 22:08:21 +02:00
parent c0299835b3
commit fa54d2e280

View File

@@ -29,14 +29,15 @@ if( $file =~ /entreprise/i ) {
else{ else{
die "Unknown branch\n" ; die "Unknown branch\n" ;
} }
open(my $data, '<', $file) or die "Could not open '$file' $!\n"; open(my $data, '<:encoding(utf8)', $file) or die "Could not open '$file' $!\n";
my @cols = @{$csv->getline ($data)}; my @cols = @{$csv->getline ($data)};
my $row = {} ; my $row = {} ;
$csv->bind_columns (\@{$row}{@cols}); $csv->bind_columns (\@{$row}{@cols});
foreach my $c( @cols) { print ">".$c."<\n" ; }
while ($csv->getline ($data)) { while ($csv->getline ($data)) {
my $dn = $row->{dn} ; my $dn = $row->{dn} ;
if ( $dn =~ /^dn / ) { next ; } if ( $dn =~ /^dn/ ) { warn "next" ; next ; }
my $idTechnique = $row->{idTechnique} ? $row->{idTechnique} : "UNDEFINED" ; my $idTechnique = $row->{idTechnique} ? $row->{idTechnique} : "" ;
my $question1 = $row->{question1} ? $row->{question1} : "UNDEFINED" ; my $question1 = $row->{question1} ? $row->{question1} : "UNDEFINED" ;
my $question2 = $row->{question2} ? $row->{question2} : "UNDEFINED" ; my $question2 = $row->{question2} ? $row->{question2} : "UNDEFINED" ;
my $question3 = $row->{question3} ? $row->{question3} : "UNDEFINED" ; my $question3 = $row->{question3} ? $row->{question3} : "UNDEFINED" ;
@@ -45,18 +46,22 @@ while ($csv->getline ($data)) {
my $reponse3 = $row->{reponse3} ? $row->{reponse3} : "UNDEFINED" ; my $reponse3 = $row->{reponse3} ? $row->{reponse3} : "UNDEFINED" ;
my $siren = $row->{siren} ? $row->{siren} : "UNDEFINED" ; my $siren = $row->{siren} ? $row->{siren} : "UNDEFINED" ;
my $civilite = $row->{civilite} ? $row->{civilite} : "UNDEFINED" ; my $civilite = $row->{civilite} ? $row->{civilite} : "UNDEFINED" ;
my $phoneNumber = $row->{phoneNumber} ? $row->{phoneNumber} : "UNDEFINED" ; my $phoneNumber = $row->{telephoneNumber} ? $row->{telephoneNumber} : "UNDEFINED" ;
my $birthDate = $row->{birthDate} ? $row->{birthDate} : "UNDEFINED" ; my $birthDate = $row->{birthDate} ? $row->{birthDate} : "UNDEFINED" ;
my $userPassword = $row->{userPassword} ; my $userPassword = $row->{userPassword} ;
my $userPassword = `slappasswd -n -s $userPassword` ; if ( $userPassword ) { $userPassword= `slappasswd -n -s $userPassword` ; }
warn "$dn\n" ;
my $mesg = $ldap -> search( my $mesg = $ldap -> search(
scope => 'base', scope => 'base',
attrs => ['1.1'], attrs => ['1.1'],
filter => '(objectClass=klesiaentreprise)', filter => '(objectClass=klesiaentreprise)',
base => $dn, base => $dn,
); );
$mesg->code and warn $dn."\t".$mesg->error;
if( $mesg-> count() == 0 ) { if( $mesg-> count() == 0 ) {
warn "Add klesia OC\n" ;
my $mesg = $ldap-> modify( $dn, my $mesg = $ldap-> modify( $dn,
add => { add => {
objectClass => 'klesiaentreprise', objectClass => 'klesiaentreprise',
@@ -64,6 +69,7 @@ while ($csv->getline ($data)) {
} }
# add common attributes # add common attributes
warn "Add common attributes\n" ;
my $mesg = $ldap-> modify( $dn, my $mesg = $ldap-> modify( $dn,
changes=> [ changes=> [
replace => [ 'idTechnique' => $idTechnique ], replace => [ 'idTechnique' => $idTechnique ],
@@ -81,6 +87,7 @@ while ($csv->getline ($data)) {
# add entreprise specific attributes # add entreprise specific attributes
if( $isEnt ){ if( $isEnt ){
warn "Add enterprise specific attributes\n" ;
my $mesg = $ldap-> modify( $dn, my $mesg = $ldap-> modify( $dn,
changes=> [ changes=> [
replace => [ 'siren' => $siren], replace => [ 'siren' => $siren],
@@ -90,10 +97,11 @@ while ($csv->getline ($data)) {
} }
# add people specific attributes # add people specific attributes
if( $isPeople ){ if( $isPeople ){
warn "Add people specific attributes\n" ;
my $mesg = $ldap-> modify( $dn, my $mesg = $ldap-> modify( $dn,
changes=> [ changes=> [
replace => [ 'birthDate' => $birthDate], replace => [ 'birthDate' => $birthDate],
replace => [ 'phoneNumber' => $phoneNumber], replace => [ 'telephoneNumber' => $phoneNumber],
] ]
) ; ) ;
$mesg->code and warn $dn."\t".$mesg->error; $mesg->code and warn $dn."\t".$mesg->error;