Example #1
0
/**

* Verifie et corrige le pseudo
* @Parametres

* @Return

*/

function verif_et_corrige_pseudo($uid,$nom,$prenom) {
	// Verification/correction de l'attribut choisi pour le pseudo
	global $attribut_pseudo;
	global $annuelle;
    global $simulation;

	// En minuscules pour la recherche:
	$attribut_pseudo_min=strtolower($attribut_pseudo);

	// Correction du nom/prenom fournis
	$nom=remplace_accents(traite_espaces($nom));
	$prenom=remplace_accents(traite_espaces($prenom));

	$nom=preg_replace("/[^a-z_-]/","",strtolower("$nom"));
	$prenom=preg_replace("/[^a-z_-]/","",strtolower("$prenom"));

	unset($attribut);
	$attribut=array("$attribut_pseudo_min");
	$tab=get_tab_attribut("people", "uid=$uid", $attribut);
	//my_echo("\$tab=get_tab_attribut(\"people\", \"uid=$uid\", \$attribut)<br />");
	//my_echo("count(\$tab)=".count($tab)."<br />");

	$tmp_pseudo=strtolower($prenom).strtoupper(substr($nom,0,1));
	if(count($tab)>0){
		// Si le pseudo existe déjà, on ne réinitialise le pseudo que lors d'un import annuel
		if($annuelle=="y") {
			//my_echo("\$tab[0]=".$tab[0]." et \$prenom=$prenom<br />");
			//$tmp_pseudo=strtolower($prenom).strtoupper(substr($nom,0,1));
			if("$tab[0]"!="$tmp_pseudo") {
				unset($attributs);
				$attributs=array();
				$attributs["$attribut_pseudo"]=$tmp_pseudo;
				my_echo("Correction de l'attribut '$attribut_pseudo': ");
                if($simulation!='y') {
                    if(modify_attribut ("uid=$uid", "people", $attributs, "replace")) {
                        my_echo("<font color='green'>SUCCES</font>");
                    }
                    else{
                        my_echo("<font color='red'>ECHEC</font>");
                        $nb_echecs++;
                    }
                }
                else {
                    my_echo("<font color='blue'>SIMULATION</font>");
                }
                my_echo("<br />\n");
			}
		}
	}
	else {
		// L'attribut pseudo n'existait pas:
		unset($attributs);
		$attributs=array();
		//$attributs["$tmp_pseudo"]=strtolower($prenom).strtoupper(substr($nom,0,1));
		$attributs["$attribut_pseudo"]=$tmp_pseudo;
		my_echo("Renseignement de l'attribut '$attribut_pseudo': ");
        if($simulation!='y') {
            if(modify_attribut("uid=$uid", "people", $attributs, "add")) {
                my_echo("<font color='green'>SUCCES</font>");
            }
            else{
                my_echo("<font color='red'>ECHEC</font>");
                $nb_echecs++;
            }
        }
        else {
            my_echo("<font color='blue'>SIMULATION</font>");
        }
		my_echo("<br />\n");
	}
}
Example #2
0
	function search_people_groups2 ($uids,$filter,$order) {


		/**

		* Recherche des utilisateurs dans la branche people a partir d'un tableau d'uids nons tries
		* Function: search_people_groups2


		* @Parametres 	$order - "cat"   => Tri par categorie (Eleves, Equipe...) - "group" => Tri par intitule de group (ex: 1GEA, TGEA...)
		* @Parametres $uids - Tableau d'uids d'utilisateurs
		* @Parametres $filter - Filtre de recherche

		* @Return Retourne un tableau des utilisateurs repondant au filtre de recherche
		*/

		// Fonction modifeie pour recueprer aussi le mail

		global $ldap_server, $ldap_port, $dn;
		global $error;
		$error="";

		// LDAP attributs
		$ldap_user_attr = array(
				"cn",                 // Nom complet
				"sn",                 // Nom
				"gecos",            // Nom prenom (cn sans accents), Date de naissance,Sexe (F/M),Status administrateur LCS (Y/N)
				"sexe",
				"mail"
		);

		if (!$filter) $filter="(sn=*)";
		$ds = @ldap_connect ( $ldap_server, $ldap_port );
		if ( $ds ) {
			$r = @ldap_bind ( $ds ); // Bind anonyme
			if ($r) {
				$loop1=0;
				for ($loop=0; $loop < count($uids); $loop++) {
					$result = @ldap_read ( $ds, "uid=".$uids[$loop]["uid"].",".$dn["people"], $filter, $ldap_user_attr );
					if ($result) {
						$info = @ldap_get_entries ( $ds, $result );
						if ( $info["count"]) {

							// Ajout pour r&#233;cup&#233;rer le mail:
							$attribut_tmp=array("mail");
							$tabtmp=get_tab_attribut("people", "uid=".$uids[$loop]["uid"], $attribut_tmp);
							$uids[$loop]["mail"]=$tabtmp[0];

							// traitement du gecos pour identification du sexe
							$gecos = $info[0]["gecos"][0];
							$tmp = preg_split ("/,/",$gecos,4);
							#echo "debug ".$info["count"]." init ".$init." loop ".$loop."<BR>";
							$ret[$loop1] = array (
								"uid"           => $uids[$loop]["uid"],
								"fullname"      => $info[0]["cn"][0],
								"name"          => $info[0]["sn"][0],
								"sexe"          => $tmp[2],
								"owner"         => $uids[$loop]["owner"],
								"group"         => $uids[$loop]["group"],
								"cat"           => $uids[$loop]["cat"],
								"gecos"         => $gecos,
								"prof"          => $uids[$loop]["prof"],
								"mail"          => $uids[$loop]["mail"]
							);
							$loop1++;
						}

						@ldap_free_result ( $result );
					}
				}
			} else {
				$error = gettext("Echec du bind anonyme");
			}

			@ldap_close ( $ds );
		} else $error = gettext("Erreur de connection au serveur LDAP");


		if (count($ret)) {
			# Correction tri du tableau
			# Tri par critere categorie ou intitule de groupe
			if ( $order == "cat" ) usort ($ret, "cmp_cat");
			elseif ( $order == "group" ) usort ($ret, "cmp_group");
			# Recherche du nombre de catgories ou d'intitules de groupe
			$i = 0;
			for ( $loop=0; $loop < count($ret); $loop++) {
				if ( $ret[$loop][$order] != $ret[$loop-1][$order]) {
					$tab_order[$i] = $ret[$loop][$order];
					$i++;
				}
			}

			if (count($tab_order) > 0 ) {
				# On decoupe le tableau $ret en autant de sous tableaux $tmp que de criteres $order
				for ($i=0; $i < count($tab_order); $i++) {
					$j=0;
					for ( $loop=0; $loop < count($ret); $loop++) {
						if ( $ret[$loop][$order] == $tab_order[$i] ) {
							$ret_tmp[$i][$j] = $ret[$loop];
							$j++;
						}
					}
				}

				# Tri alpabetique des sous tableaux
				for ( $loop=0; $loop < count($ret_tmp); $loop++) usort ($ret_tmp[$loop], "cmp_name");

				# Reassemblage des tableaux temporaires
				$ret_final = array();
				for ($loop=0; $loop < count($tab_order); $loop++)  $ret_final = array_merge ($ret_final, $ret_tmp[$loop]);
				return $ret_final;
			} else {
				usort ($ret, "cmp_name");
				return $ret;
			}
		}
	}
Example #3
0
		$swc = new smbwebclient;
		$swc->NoRun('noauth');		
	}
	include "/var/www/lcs/includes/headerauth.inc.php";
 	include "/var/www/Annu/includes/ldap.inc.php";
	if(@ldap_get_right("smbweb_is_open",$login)!='Y') {
		$swc = new smbwebclient;
		$swc->NoRun('noright');
	} else {
		if(@ldap_get_right("lcs_is_admin",$login)=='Y') {
			$acces="y";
		} else {
			// Test du changement du mot de passe
			include("/var/www/Annu/includes/crob_ldap_functions.php");
			$attribut=array("gecos");
			$tab=get_tab_attribut("people", "uid=$login", $attribut);
			// On ne doit avoir (au plus (*)) qu'un gecos par utilisateur.
			// (*) admin n'a pas de gecos
			$tab2=explode(",",$tab[0]);
			if (user_valid_passwd($login,$tab2[1])) {$acces="n";} else {$acces="y";}
		}

		if ($acces=="y") {
			//echo "Acces autorise.";
			$swc = new smbwebclient;
			$swc->cfgUserAuth = 'LcsAuth';
			$swc->cfgSambaRoot = strtoupper($se3domain);
			$swc->cfgDefaultServer = strtoupper($se3netbios);
			$swc->ShareView = $shareview;
			$swc->Login = $login;
			$swc->Run();
Example #4
0
					draw_table_result ("Cat&#233;gorie", "Eleve", "Professeur", "Administratif");
      					for ($loop=0; $loop<count($users);$loop++) {
						$html.="<tr><td style='width: 300px;'>".utf8_decode( $users[$loop]["cn"] )."</td>\n";
                                                $NoRecup = false;
                                                # test si on peut recuperer le compte
                                                $attribut[0]="uidnumber";
                                                $tab=get_tab_attribut("people", "uid=*", $attribut);
                                                for($i=0;$i<count($tab);$i++){
                                                    if ( $tab[$i] == $users[$loop]["uidnumber"] ) {
                                                        $NoRecup = true;
                                                        break;
                                                    }
                                                }
                                                unset($attribut,$tab);
                                                $attribut[0]="uid";
                                                $tab=get_tab_attribut("people", "uid=*", $attribut);
                                                for($i=0;$i<count($tab);$i++){
                                                    if ( $tab[$i] == $users[$loop]["uid"] ) {
                                                        $NoRecup = true;
                                                        break;
                                                    }
                                                }
                                                if ( $NoRecup ) {
						  $html.="<td colspan='3' style='align: center; width: 150px; font-size:0.7em; font-weight:bold; color:#FDAF4E;'>&nbsp;Ce compte n'est pas r&#233;cup&#233;rable.&nbsp;".msgaide($msg6)."</td>\n";
                                                } else {
						  $html.="<td style='align: center; width: 50px;'><input type='radio' name='cat[$loop]' value='".$users[$loop]["uid"]."@@Eleves'></td>\n";
						  $html.="<td style='width: 50px;'><input type='radio' name='cat[$loop]' value='".$users[$loop]["uid"]."@@Profs'></td>\n";
						  $html.="<td style='width: 50px;'><input type='radio' name='cat[$loop]' value='".$users[$loop]["uid"]."@@Administratifs'></td></tr>\n";
                                                }
      					}
					$html.="</tbody>\n</table>\n";
Example #5
0
			my_echo("Aucun professeur principal n'a été trouvé<br />\n");
		}
		else {
			// Ajout de membres au groupe d'après $tab_pp
			my_echo("Ajout de membres au groupe $nom_groupe_pp: ");
	
			for($n=0;$n<count($tab_pp);$n++) {
				$uid=$tab_pp[$n];
				if(in_array($uid,$tab_mem_pp)) {
					// Rien à faire, déjà présent
					my_echo("$uid ");
				}
				else {
		
					$attribut=array("cn");
					$tabtmp=get_tab_attribut("groups", "(&(cn=$nom_groupe_pp)(memberuid=$uid))", $attribut);
					if(count($tabtmp)==0) {
						unset($attribut);
						$attribut=array();
						$attribut["memberUid"]=$uid;
						if(modify_attribut("cn=$nom_groupe_pp","groups",$attribut,"add")) {
							my_echo("<b>$uid</b> ");
						}
						else{
							my_echo("<font color='red'>$uid</font> ");
							$nb_echecs++;
						}
					}
					else{
						my_echo("$uid ");
					}
Example #6
0
    echo "<br />\n";
				echo "Si vous &#234;tes certain que ce n'est pas le cas, vous pouvez faire sauter le verrou.<br />Sinon, il vaut mieux patienter quelques minutes.</p>\n";

				echo "<p><a href='".$_SERVER['PHP_SELF']."?deverrouiller=y&jeton=".md5($_SESSION['token'].htmlentities($_SERVER['PHP_SELF']))."'>Faire sauter le verrou</a>.</p>\n";
			}
			else{
				echo "<h2><u>Choix des fichiers source</u></h2>\n";

				// ===========================================================
				// AJOUTS: 20070914 boireaus

				exec("ldapsearch -xLLL ou=Trash",$retour_recherche_branche_Trash);
				if(count($retour_recherche_branche_Trash)>0){
					$attribut=array("uid");
					$test_tab=get_tab_attribut("trash", "uid=*", $attribut);
					if(count($test_tab)){
						echo "<p><span style='color:red; font-weight:bold;'>ATTENTION:</span> Il semble que la Corbeille contienne des comptes.<br />Conserver des comptes avant un import peut &#234;tre g&#234;nant:</p>\n";
						echo "<ul>\n";
						echo "<li>Cela peut causer une p&#233;nurie d'uidNumber libres pour les nouveaux comptes &#224; cr&#233;er.</li>\n";
						echo "<li>Cela rallonge le temps de traitement.</li>\n";
						echo "</ul>\n";
						echo "<p>Il est donc recommand&#233; de proc&#233;der au Nettoyage des comptes (<i>dans le menu Annuaire</i>) avant d'effectuer l'import de nouveaux comptes.</p>\n";
					}
				}
				// ===========================================================


				echo "<h4>Fichier &#233;l&#232;ves</h4>\n";

				echo "<form enctype='multipart/form-data' name='formulaire1' action='".$_SERVER['PHP_SELF']."' method='post'>\n";