Avatar billede kkrasmussen Nybegynder
11. september 2008 - 19:08 Der er 1 løsning

Problemer med ldap

Hej alle eksperter!
Jeg er igang med en hastesag. Det er et script som kun skal eksekveres en enkelt gang, så det er ikke noget jeg gider gøre kønt eller lave det fede layout på.

Men nuvel.

Baggrunds informationen er således:

Fra et eDirectory er der lavet et udtræk over samtlige brugere fra alle OU'ere. Grunden er at der via et andet interface foretages brugerstyring. Men flere forskellige afdelinger har et brugerstyringsinterface, og en af afdelingerne er dybt afhgængige af en enkelt attribut ved navn SyncID som desværre ikke bliver sat. Det vil den blive med den nye implementering som vil ske på Lørdag. men derfor skal dataen være up2date.

Jeg er derfor blevet "hyret" til at lave et lille script/hjemmeside som vil trække brugerID, SyncID og afdeling(OU) ud fra 7 csv filer.
Disse skal så ved at sammenligne deres userID(som vil være = CN), overskrive eller oprette(hvis den ikke eksisterer) SyncID attributten med værdi.

Som det ser ud nu, har jeg samlet alle oplysninger i et tre dimensionelt array og kan derved lave nogle løkker der gør det for mig. Men jeg kan ikke få LDAP delen til at virke.
Jeg indsætter php filen her:


<?php
/**
* @copyright Steria Denmark A/S
* @author Kevin Kruse Rasmussen.
* @version 1.0
*/

function connect()
{
    $dn = "CN=admin,O=hs";

    $pw = "XXXXXXXXXXXXXX";

    $ds=ldap_connect("XXXXXXXXXXXX", "389") or exit ("<error>ERROR: Unable to connect to LDAP server</error>");

    return $ds;
}

function bind()
{
    $r=ldap_bind(connect(), $dn, $pw);
    return $r;
   
}
$csv = array();


/**
* Genererates the 3 dimensionel array.
*/

$i = 0;
$temp = fopen("./files/ah_users.csv", "r");
while (!feof($temp) ) {
    $ah_csv = fgetcsv($temp, 1024);
    $csv["ah"][$i][0]=$ah_csv[0];
    $csv["ah"][$i][1]=$ah_csv[1];
    $csv["ah"][$i][2]=$ah_csv[2];
    $i++;
}
fclose($temp);

$i= 0;
$temp = fopen("./files/bh_users.csv", "r");
while (!feof($temp) ) {
    $bh_csv = fgetcsv($temp, 1024);
    $csv["bh"][$i][0]=$bh_csv[0];
    $csv["bh"][$i][1]=$bh_csv[1];
    $csv["bh"][$i][2]=$bh_csv[2];
    $i++;
}
fclose($temp);

$i = 0;
$temp = fopen("./files/bo_users.csv", "r");
while (!feof($temp) ) {
    $bo_csv = fgetcsv($temp, 1024);
    $csv["bo"][$i][0]=$bo_csv[0];
    $csv["bo"][$i][1]=$bo_csv[1];
    $csv["bo"][$i][2]=$bo_csv[2];
    $i++;
}
fclose($temp);

$i = 0;
$temp = fopen("./files/fa_users.csv", "r");
while (!feof($temp) ) {
    $fa_csv = fgetcsv($temp, 1024);
    $csv["fa"][$i][0]=$fa_csv[0];
    $csv["fa"][$i][1]=$fa_csv[1];
    $csv["fa"][$i][2]=$fa_csv[2];
    $i++;
}
fclose($temp);

$i = 0;
$temp = fopen("./files/fh_users.csv", "r");
while (!feof($temp) ) {
    $fh_csv = fgetcsv($temp, 1024);
    $csv["fh"][$i][0]=$fh_csv[0];
    $csv["fh"][$i][1]=$fh_csv[1];
    $csv["fh"][$i][2]=$fh_csv[2];
    $i++;
}
fclose($temp);

$i = 0;
$temp = fopen("./files/hh_users.csv", "r");
while (!feof($temp) ) {
    $hh_csv = fgetcsv($temp, 1024);
    $csv["hh"][$i][0]=$hh_csv[0];
    $csv["hh"][$i][1]=$hh_csv[1];
    $csv["hh"][$i][2]=$hh_csv[2];
    $i++;
}
fclose($temp);

$i = 0;
$temp = fopen("./files/rh_users.csv", "r");
while (!feof($temp) ) {
    $rh_csv = fgetcsv($temp, 1024);
    $csv["rh"][$i][0]=$rh_csv[0];
    $csv["rh"][$i][1]=$rh_csv[1];
    $csv["rh"][$i][2]=$rh_csv[2];
    $i++;
}
fclose($temp);

/**
* Generation complete.
*/


$z = 0;

$num = count($csv);
$num2 = count($csv["ah"]);
$num3 = count($csv["bh"]);
$num4 = count($csv["bo"]);
$num5 = count($csv["fa"]);
$num6 = count($csv["fh"]);
$num7 = count($csv["hh"]);
$num8 = count($csv["rh"]);

$text = '';

$con = connect();
$bind = bind();
$attributes = array("cn", "SyncID");

$i = 0;
while($i <= $num2)
{
    $searchstring='cn='.$csv["ah"][$i][0];
    $fin = ldap_search($con,"ou=ah,o=HS", $searchstring, $attributes) or exit("<error>ERROR: Unable to search LDAP server</error>");
    $final = ldap_get_entries($con, $fin);
    $userdata = $csv["ah"][$i][1];

        // Her vil jeg godt bare se om jeg overhovedet har nogen data
    echo 'This entry: '.$final["cn"].' Will be replaced with this: '.$userdata[0].'<br />';   
    //ldap_mod_replace($con, $final["SyncID"], $userdata);

}

/*$i = 0;
while($i <= $num3)
{


}

$i = 0;
while($i <= $num4)
{


}
$i = 0;
while($i <= $num5)
{


}

$i = 0;
while($i <= $num6)
{


}

$i = 0;
while($i <= $num7)
{


}

$i = 0;
while($i <= $num8)
{


}
*/

print $text;
?>
Avatar billede kkrasmussen Nybegynder
24. september 2008 - 09:54 #1
Klarede det selv.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester