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;
?>