[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 <?php 2 3 4 /** 5 * Fonctions pour le paquet se3-internet 6 * @Version $Id: Internet.inc.php 5988 2010-11-26 16:55:03Z dbo $ 7 8 * @Projet LCS-SE3 9 * @auteurs Denis Bonnenfant 10 * @auteurs e-fournier@wanadoo.fr 11 * @Licence Distribue sous la licence GPL 12 */ 13 14 /** 15 * @Repertoire includes/ 16 * file Internet.inc.php 17 */ 18 19 20 21 //================================================= 22 23 /** 24 * fonction qui retourne les droits Internet pour une personne ou une machine 25 26 * @Parametres variable de format "uid ou cn" 27 * @Return table repersentent les niveaux de droits Internet: droit permanent droit temporaire duree 28 */ 29 30 function lecture_droit($uid) 31 { 32 global $ldap_server, $ldap_port, $dn, $ldap_base_dn; 33 global $error; 34 $error=""; 35 $ds = ldap_connect ($ldap_server, $ldap_port); 36 if ($ds) 37 { 38 $r = ldap_bind ($ds); // Bind anonyme 39 if ($r) 40 { 41 // recherche des entrees qui contiennent l'uid $uid 42 $result = @ldap_search ($ds, "ou=People,$ldap_base_dn", "uid=$uid"); 43 $m = ldap_get_entries ( $ds, $result ); 44 if(!$m[0]["destinationindicator"][0]) 45 { 46 $result = @ldap_search ($ds, "ou=Computers,$ldap_base_dn", "cn=$uid"); 47 $m = ldap_get_entries ( $ds, $result ); 48 } 49 // lecture du droit 50 $droit = $m[0]["destinationindicator"][0]; 51 $table_droit = explode(":", $droit); 52 @ldap_free_result ($result); 53 } 54 else 55 { 56 $error = "Echec du bind anonyme"; 57 } 58 ldap_close ( $ds ); 59 } 60 else 61 { 62 $error = "Erreur de connection au serveur LDAP"; 63 } 64 65 return $table_droit; 66 } 67 68 69 //================================================= 70 71 /** 72 * Retourne le droit temporaire d'une personne 73 74 * @Parametres nom dont on veut connaitre le droit 75 * @Return le droit 76 */ 77 78 function lecture_droit_temporaire($nom) 79 { 80 global $error; 81 $error=""; 82 $droits=lecture_droit($nom); 83 return $droits[1]; 84 } 85 86 87 //================================================= 88 89 /** 90 * Retourne le droit permament d'une personne 91 92 * @Parametres nom de la personne 93 * @Return le droit 94 */ 95 function lecture_droit_permanent($nom) 96 { 97 global $error; 98 $error=""; 99 $droits=lecture_droit($nom); 100 return $droits[0]; 101 } 102 103 104 105 //================================================= 106 107 /** 108 * Recherche les machines ayant le manager correspondant a l'uid et etant dans un parc portable_* 109 110 * @Parametres uid 111 * @Return 112 */ 113 function search_manager($uid) 114 { 115 global $ldap_server, $ldap_port, $dn, $ldap_base_dn; 116 global $error; 117 $error=""; 118 $ds = ldap_connect ($ldap_server, $ldap_port); 119 if ($ds) 120 { 121 $r = ldap_bind ($ds); // Bind anonyme 122 if ($r) 123 { 124 // recherche des entrees qui contiennent l'uid $uid 125 $result = @ldap_search ($ds, "ou=Computers,$ldap_base_dn", "manager=uid=$uid,ou=People,$ldap_base_dn"); 126 $m = ldap_get_entries ( $ds, $result ); 127 for ($loop = 0; $loop < count($m)-1 ; $loop++) 128 { 129 $computer[] = $m[$loop]["cn"][0]; 130 } 131 @ldap_free_result ($result); 132 } 133 else 134 { 135 $error = "Echec du bind anonyme"; 136 } 137 ldap_close ( $ds ); 138 } 139 else 140 { 141 $error = "Erreur de connection au serveur LDAP"; 142 } 143 144 return $computer; 145 } 146 147 148 //================================================= 149 150 /** 151 * Recherche les portables appartenant a $manager 152 153 * @Parametres manager le nom du proprio du portable 154 * @Return un tableau de machines 155 */ 156 function search_portables ($manager) { 157 158 159 global $ldap_server, $ldap_port, $dn; 160 global $error; 161 162 $ldap_computer_attr = array ( "cn" ); 163 $filter_m = "(manager=uid=".$manager.",".$dn["people"].")"; 164 165 $ds = @ldap_connect ( $ldap_server, $ldap_port ); 166 if ( $ds ) { 167 $r = @ldap_bind ( $ds ); // Bind anonyme 168 if ($r) { 169 $result = @ldap_list ( $ds, $dn["computers"], $filter_m, $ldap_computer_attr ); 170 if ($result) { 171 $info = @ldap_get_entries ( $ds, $result ); 172 if ( $info["count"]) { 173 for ($loop=0; $loop < $info["count"]; $loop++) { 174 $filter_p = "(&(cn=portables_*)(member=cn=".$info[$loop]["cn"][0].",".$dn["computers"]."))"; 175 $ldap_parc_attr = array ( "cn" ); 176 $result_p = @ldap_list ( $ds, $dn["parcs"], $filter_p, $ldap_parc_attr ); 177 if ($result_p) { 178 $info_p = @ldap_get_entries ( $ds, $result_p ); 179 if ( $info_p["count"]) { 180 $computers[]["cn"] = $info[$loop]["cn"][0]; 181 } 182 } 183 @ldap_free_result ( $result_p ); 184 } 185 } 186 187 @ldap_free_result ( $result ); 188 } 189 } 190 191 @ldap_close($ds); 192 } 193 194 return $computers; 195 } 196 197 198 //================================================= 199 200 /** 201 * Retourne l'IP de la machine 202 203 * @Parametres machine dont on veut l'IP 204 * @Return l'adresse IP 205 */ 206 207 function get_ip($machine) 208 { 209 global $ldap_server, $ldap_port, $dn, $ldap_base_dn; 210 global $error; 211 $error=""; 212 $valeur = 0; 213 214 $ds = @ldap_connect ($ldap_server, $ldap_port); 215 if ($ds) 216 { 217 $r = @ldap_bind ($ds); // Bind anonyme 218 if ($r) 219 { 220 // recherche des ip de $machine 221 $result = @ldap_search ($ds, "ou=Computers,".$ldap_base_dn, "(cn=".$machine.")", array("iphostnumber")); 222 $m = @ldap_get_entries ( $ds, $result ); 223 for ($loop=0; $loop < count($m[0]["iphostnumber"]); $loop++) { 224 // Ips associees au nom 225 $ip = $m[0]["iphostnumber"][$loop]; 226 } 227 @ldap_free_result ($result); 228 } 229 else 230 { 231 $error = "Echec du bind anonyme"; 232 } 233 @ldap_close ( $ds ); 234 } 235 else 236 { 237 $error = "Erreur de connection au serveur LDAP"; 238 } 239 return $list_ip; 240 } 241 242 243 //================================================= 244 245 /** 246 * Renvoie un tableau de noms des machines correspondant a l'iP si elle est dans le parc 247 248 * @Parametres 249 * @Return 250 */ 251 252 function get_name($ip, $parc) 253 { 254 global $ldap_server, $ldap_port, $dn, $ldap_base_dn; 255 global $error; 256 $error=""; 257 $valeur = 0; 258 259 $ds = @ldap_connect ($ldap_server, $ldap_port); 260 if ($ds) 261 { 262 $r = @ldap_bind ($ds); // Bind anonyme 263 if ($r) 264 { 265 // recherche des machines 266 $result = @ldap_search ($ds, "ou=computers,".$ldap_base_dn, "iphostnumber=".$ip); 267 $m = @ldap_get_entries ( $ds, $result ); 268 if ($m["count"]>0) { 269 for ($loop=0; $loop < $m["count"]; $loop++) { 270 $resp = @ldap_search ($ds, "ou=Parcs,".$ldap_base_dn, "(&(cn=".$parc.")(member=".$m[$loop]["dn"]."))"); 271 $p = @ldap_get_entries ( $ds, $resp ); 272 if ($p["count"] > 0 ) 273 $machine[] = $m[$loop]["cn"][0]; 274 } 275 } 276 @ldap_free_result ($result); 277 } 278 else 279 { 280 $error = "Echec du bind anonyme"; 281 } 282 @ldap_close ( $ds ); 283 } 284 else 285 { 286 $error = "Erreur de connection au serveur LDAP"; 287 } 288 289 return $machine; 290 } 291 292 293 294 //================================================= 295 296 /** 297 * Compare deux chaines (ici des classes) a et b sans tenir compte de la case 298 299 * @Parametres $a et $b a comparer 300 * @Return true si les deux chaines sont identiques 301 */ 302 303 function myCmpClasse ($a, $b) { 304 return strcasecmp ($a[cn][0], $b[cn][0]); 305 } 306 307 308 //================================================= 309 310 /** 311 * Compare deux chaines $a et $b sans tenir compte de la case 312 313 * @Parametres $a et $b a comparer 314 * @Return true si les deux chaines sont identiques 315 */ 316 function myCmp ($a, $b) { 317 return strcasecmp ($a[uid][0], $b[uid][0]); 318 } 319 320 321 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |