Bonjour à tous . Comme je l'ai déja traité ici , mon objectif est le suivant :
1 - me connecter à une base SQLite distante
2 - récupérer certaine valeurs
3 - envoyer ces valeurs dans le LDAP
Actuellement , les 2 premières étapes sont franchies et je planche actuellement sur l'utilisation du module Net::LDAP.
Afin de me familiariser avec , j'ai tenté de faire des listages etc etc et tout marche à merveille. Cependant , je n'arrive pas à écrire dans le LDAP.
Tout d'abord voici mon code :
Je vais éclaircir un peu mon code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 #!/usr/bin/perl use warnings; use strict; use Net::LDAP; use DBI; ############# DB ################ my $BaseDeDonnees = "astsqlite"; my $NomHote = "localhost"; my $login = ""; my $MotDePass = ""; ################################# ############LDAP################ my $ldap = Net::LDAP->new("x",port =>389, version => 3) or die "$@"; my $mesg = $ldap->bind("x",password => "toto"); $mesg->code && die $mesg->error; ################################ my $dbh=DBI->connect( "dbi:SQLite2:dbname=$BaseDeDonnees;host=$NomHote;",,) or die "Connection impossible à la base de donnees $BaseDeDonnees !"; my @row; my $sth = $dbh->prepare("SELECT callerid FROM usersip "); $sth->execute(); print "\n## Debut de la recuperation des utilisateurs Asterisk ##\n\n"; while ( @row = $sth->fetchrow_array ) { $mesg = $ldap->add( "uid=@row,ou=asterisk,dc=x,dc=fr", attr => [ uid => '@row', cn => '@row', objectClass => [ 'top', 'organizationalUnit', 'AsteriskSIPUser'], ] ); print "@row\n"; } print "\n## Fin de la recuperation ##\n"; $ldap->unbind;
Via une interfance web , un admin crée des utilisateurs qui sont entrées dans une base sqlite. Ma mission est de récupéré le callerid de chaque utilisateurs ( de la forme Nom Prénom <n°detel> ) et de l'envoyer dans mon LDAP , dans une OU prédéfinie.
Cependant , je n'arrive pas à écrire dans mon LDAP ( mes credentials sont bons ) , mais je récupère bien les données SQLite. Donc je penche vers une erreur de syntaxe de ma part.
Avez vous des idées?
Best regard,
Partager