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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>
<style>
body
{
width: auto;
}
</style>
<body>
<form method="post" action="" >
<p>Users ::</p>
<?
// CODE PHP pour lister les utilisateurs;
/* On prepare les variables indispensable pour la connection au serveur LDAP */
$ldap_server = "ldap://server1.Server-TEST.lan"; // On met le nom du serveur LDAP
$base_DN = "OU=OFFICE,OU=MU,OU=WXP,OU=Platform,OU=Server-TEST,OU=Plants,DC=Server-TEST,DC=lan"; // Base de l'active directory où seron effectué les recherches.
$auth_user = "administrator@Server-TEST.lan";
$auth_pass = "Password";
/* On met en place un filtre pour obtenir uniquement les objets voulu */
$filter = "(&(objectClass=user)(objectCategory=person)(cn=*)" ;
// Si on voulait tout voir il suffirait de mettre :: $filter = (cn=*), dans le cas present on dit qu'on veut seulement les objets de la classe USER et ayant une categorie PERSON
/* On lance la connection au LDAP */
if (!($connect=ldap_connect($ldap_server , 389) )
// On tente de se connecter au serveur contenu dans la variable LDAP_SERVER (1er parametre de ldap_connect), puis on entre le port de connection, ici 389 (facultatif)
{
die("Connection to server Failled !!!"); // Si la connection échoue alors on est informé grace au message
}
/*On va ensuite s'authentifier aupres du server LDAP*/
if(!($bind = ldap_bind( $connect , $auth_user , $auth_pass ))) // Le premier parametre est la source d'authentification, suivi du nom d'utilisateur et de son password, on peut voir la ressemblence avec une connection a une base SQL, seul le mot clé est different.
{
die("Unable to bind to server"); // Si l'authentification échoue alors le message est retourné.
}
/* On va maintenant commencer la recherche */
if(!($bind=ldap_search($connect , $base_dn , $filter))) //On commence par le serveur LDAP sur lequel aura lieu la recherche, suivi de la base où aura lieu la recherche, et on fini par le filtre. D'autre paramétre sont optionnels et facultatif.
{
die("Unable to search LDAP server"); // Echec de la recherche
}
/*Une fois la recherche effectué, on va classé les valeurs dans un tableau*/
$number_returned = ldap_count_entries( $connect , $search ); // On compte le nombre de valeur retourné par la recherche.
$info = ldap_get_entries($connect , $search); // ldap_get_entries sert a retourner toutes les valeurs obtenu par la recherche dans un tableau multidimenstionnel et retourne FALSE en cas d'erreur.
echo '<select name="userlist[]" multiple size="8">';
$tab=array();
for ($i=0; $i<count($info); $i++)
{
$tab[$i]=$info[$i]["name"][0];
}
sort($tab);
for ($i=0; $i<$info["count"]; $i++)
{
echo '<option value="'. $tab[$i].'">'. $tab[$i].'
</option>';
}
echo "</select>";
}
?>
<input type="button" value="Ajouter" name="Add" />
<input type="button" value="Supprimer" name="Del" />
<?
/* Ajout d'utilisateur */
if (isset($_POST['Add'])) //Si on clic sur le bouton ajouter, on ajoute l'utilisateur au groupe "Internet"
{
if(isset($_POST['userlist']))
{
$user = array(); //On dit que la variable USER sera un tableau, dedans on va stocker les utilisateur a ajouter au groupe internet.
/*On rempli le tableau USER avec le tableau des utilisateur selectionné*/
for ( $compteur = 0 ; $compteur < count($_POST['userlist']) ; $compteur++ )
{
$user[ $compteur ] = $_POST['userlist'][$compteur]; //On prend l'utilisateur contenu dans le tableau a l'indice donne par COMPTEUR
}
//On réalise la partie commande qui sera ecrite dans un fichier.
$DN_commande = 'dsmod group "CN=Server-TEST-INTERNET,OU=SystemAccounts,OU=CentralResources,OU=Plants,DC=Server-TEST,DC=lan"';
$commande_addMember = ' -addmbr ';
//On prend tout les utilisateurs et on les mets a la suite.
for ( $compteur = 0 ; $compteur < count($user) ; $compteur++ )
{
$commande_addMember = $commande_addMember . '"CN=' . $user[$compteur]. ',OU=OFFICE,OU=MU,OU=WXP,OU=Platform,OU=Server-TEST,OU=Plants,DC=Server-TEST,DC=lan"';
}
$date="@echo ".date('d/m/Y H-i-s');
//defintion du fichier .bat a incrémenter de la commande
$path="\\\\Server-TEST\ad\cmd\add_Internet_User.bat";
$ok=true;
//si le user n'existe pas dans le fichier .bat alors on incrémente le .bat de la commande
if($ok)
{
//inscription de la date et de l'heure de création du user
$inF=fopen($path,"a");
fputs($inF,"\r\n@echo ____________________________________________\r\n");
fputs($inF,$date."\r\n");
fclose($inF);
//ajout de la commande de création du user
$inF=fopen($path,"a");
fputs($inF,$commande_addMember."\r\n");
fclose($inF);
echo'utilisateur bien inscrit pour ajout dans le groupe ';
}
}
}
?>
<?
/* Suppression d'utilisateur du groupe Internet */
if (isset($_POST['Del']) )
{
if(isset($_POST['userlist']))
{
$del_user = array();
for ($compteur = 0 ; $compteur < count($_POST['userlist']) ; $compteur++ )
{
$del_user[$compteur] = $_POST['userlist'][$compteur];
}
//On prepare la commande de suppression :
$commande_del_user = 'dsmod group "CN=Server-TEST-INTERNET,OU=SystemAccounts,OU=CentralResources,OU=Plants,DC=Server-TEST,DC=lan"';
$all_user_delete = ' -rmmbr ';
for($compteur = 0 ; $compteur < count($del_user) ; $compteur++ )
{
$all_user_delete = $all_user_delete . ' "CN=' . $del_user[$compteur] . ',OU=OFFICE,OU=MU,OU=WXP,OU=Platform,OU=Server-TEST,OU=Plants,DC=Server-TEST,DC=lan"';
}
$date="@echo ".date('d/m/Y H-i-s');
//defintion du fichier .bat a incrémenter de la commande
$path="\\\\Server-TEST\ad\cmd\del_Internet_User.bat";
$ok=true;
//si le user n'existe pas dans le fichier .bat alors on incrémente le .bat de la commande
if($ok)
{
//inscription de la date et de l'heure de création du user
$inF=fopen($path,"a");
fputs($inF,"\r\n@echo ____________________________________________\r\n");
fputs($inF,$date."\r\n");
fclose($inF);
//ajout de la commande de création du user
$inF=fopen($path,"a");
fputs($inF,$all_user_delete."\r\n");
fclose($inF);
echo'utilisateur bien inscrit pour suppression dans le groupe ';
}
}
}
?>
</form>
</body>
</html> |
Partager