mise au point doc et support multi branche

This commit is contained in:
2019-10-24 15:14:22 +02:00
parent f58797b35e
commit 917365b9a0
4 changed files with 68 additions and 24 deletions

View File

@@ -8,6 +8,9 @@ my $ldapserver = "localhost";
my $binddn = "cn=manager,o=od";
my $bindpw = "123Soleil" ;
my $isPeople=0 ;
my $isEnt=0;
my $ldap = Net::LDAP->new( $ldapserver ) or die "$@" ;
my $mesg = $ldap->bind( $binddn,
@@ -18,17 +21,21 @@ $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" ;
if( $file =~ /entreprise/i ) {
$isEnt=1 ;
}elsif( $file =~ /particulier/i ) {
$isPeople=1 ;
}
else{
die "Unknown branch\n" ;
}
open(my $data, '<', $file) or die "Could not open '$file' $!\n";
my @cols = @{$csv->getline ($data)};
foreach my $c (@cols){
print "column: ". $c ."\t" ;
}
print "\n" ;
my $row = {} ;
$csv->bind_columns (\@{$row}{@cols});
while ($csv->getline ($data)) {
my $dn = $row->{dn} ;
if ( $dn =~ /^dn / ) { next ; }
if ( $dn =~ /^dn / ) { next ; }
my $idTechnique = $row->{idTechnique} ? $row->{idTechnique} : "UNDEFINED" ;
my $question1 = $row->{question1} ? $row->{question1} : "UNDEFINED" ;
my $question2 = $row->{question2} ? $row->{question2} : "UNDEFINED" ;
@@ -38,6 +45,8 @@ while ($csv->getline ($data)) {
my $reponse3 = $row->{reponse3} ? $row->{reponse3} : "UNDEFINED" ;
my $siren = $row->{siren} ? $row->{siren} : "UNDEFINED" ;
my $civilite = $row->{civilite} ? $row->{civilite} : "UNDEFINED" ;
my $phoneNumber = $row->{phoneNumber} ? $row->{phoneNumber} : "UNDEFINED" ;
my $birthDate = $row->{birthDate} ? $row->{birthDate} : "UNDEFINED" ;
my $userPassword = $row->{userPassword} ;
my $userPassword = `slappasswd -n -s $userPassword` ;
@@ -52,21 +61,43 @@ while ($csv->getline ($data)) {
add => {
objectClass => 'klesiaentreprise',
});
}else{
warn $dn . " already of type klesia\n" ;
my $mesg = $ldap-> modify( $dn,
}
# add common attributes
my $mesg = $ldap-> modify( $dn,
changes=> [
replace => [ 'idTechnique' => $idTechnique ],
replace => [ 'question1' => $question1 ],
replace => [ 'question2' => $question2 ],
replace => [ 'question3' => $question3 ],
replace => [ 'reponse1' => $reponse1 ],
replace => [ 'reponse2' => $reponse2 ],
replace => [ 'reponse3' => $reponse3 ],
replace => [ 'idTechnique' => $idTechnique ],
replace => [ 'question1' => $question1 ],
replace => [ 'question2' => $question2 ],
replace => [ 'question3' => $question3 ],
replace => [ 'reponse1' => $reponse1 ],
replace => [ 'reponse2' => $reponse2 ],
replace => [ 'reponse3' => $reponse3 ],
replace => [ 'civilite' => $civilite],
replace => [ 'userPassword' => $userPassword ],
]
) ;
$mesg->code and warn $dn."\t".$mesg->error;
# add entreprise specific attributes
if( $isEnt ){
my $mesg = $ldap-> modify( $dn,
changes=> [
replace => [ 'siren' => $siren],
replace => [ 'civilite' => $civilite],
replace => [ 'userPassword' => $userPassword ],
]
) ;
$mesg->code and warn $dn."\t".$mesg->error; }
}
$mesg->code and warn $dn."\t".$mesg->error;
}
# add people specific attributes
if( $isPeople ){
my $mesg = $ldap-> modify( $dn,
changes=> [
replace => [ 'birthDate' => $birthDate],
replace => [ 'phoneNumber' => $phoneNumber],
]
) ;
$mesg->code and warn $dn."\t".$mesg->error;
}
}