");
$partition=$_POST['partition'];
if($partition=="") { $partition=$_GET['partition']; }
$classe_gr=$_POST['classe_gr'];
$equipe_gr=$_POST['equipe_gr'];
$matiere_gr=$_POST['matiere_gr'];
$autres_gr=$_POST['autres_gr'];
$user=$_POST['user'];
if ( file_exists("/tmp/tmp_quota_K") or file_exists("/tmp/tmp_quota_H")) {
//J'utilise le script warn_quota.sh en le patchant a deux endroits pour creer un fichier dans /tmp: ce fichier est efface immediatement si l'admin n'avait pas fixe d'avertissement en cas de depassement de quota... Pas elegant mais cela ecomise un script et warnquota.sh est rapide...
// AFFICHAGE D'ALERTE DES USERS en depassement de quota
exec("sudo /usr/share/se3/scripts/warn_quota.sh");
echo "
".gettext("Attention!")."
";
$arr = array("/home", "/var/se3");
foreach ($arr as $partit) {
if ( $partit == "/home" ) { $disque="K"; }
else
{$disque="H"; }
if (file_exists("/tmp/tmp_quota_$disque")) {
echo "".gettext("Liste des utilisateurs en dépassement de quota sur")." $partit :
";
echo "\n";
echo "
";
if ( $partit == "/home" ) {
exec("cat /tmp/tmp_quota_$disque|gawk -F \"\t\" '{print \" \" $1 \" | \" $2 \" | \" $3 \" | \" $5 \" |
\"}'| sed -e \"s+#FF8C00>Expire+#FF0000>Expir\é+g\" | sed -e \"s+-+ | -+g\" > /tmp/result_quota");
exec("sed -i /tmp/result_quota -e \"s!REPERE1 !popuprecherche(\'stats_user.php?partition=$partit\&uid=!\"");
exec("sed -i /tmp/result_quota -e \"s! REPERE2!','popuprecherche','width=800,height=500');!\"");
system("cat /tmp/result_quota");
exec("rm /tmp/result_quota");
} else {
system("cat /tmp/tmp_quota_$disque|gawk -F \"\t\" '{print \" | \" $1 \" | \" $2 \" | \" $3 \" | \" $5 \" |
\"}'| sed -e \"s+#FF8C00>Expire+#FF0000>Expir\é+g\" | sed -e \"s+-+ | -+g\"");
}
echo " |
";
}
}
} else {
//effacer les messages d'avertissements crees en trop par ce script si non desires
exec("sudo /usr/share/se3/scripts/warn_quota.sh");
}
echo "".gettext("Visualisation des quotas effectivement attribués")."
";
//FILTRAGE
echo "";
//echo "";
if ($partition<>"") {
//AFFICHAGE DES RESULTATS
echo "
";
//tableau des quotas: un tableau par groupe selection
if ($classe_gr=="" and $equipe_gr=="" and $matiere_gr == "" and $autres_gr=="" and $user=="") {
//si aucun filtre
echo "".gettext("Le traitement des quotas pour la totalité de l'annuaire est en cours: veuillez patienter...")."
";
echo "Période de grâce actuelle sur $partition : ";
system("sudo repquota $partition|grep \"Block grace time\"|cut -b19-25|sed -e \"s/ //g\"|sed -e \"s/days/ jour(s)/g\"|sed -e \"s/;//g\"");
echo "
";
echo "".gettext("Liste de tous les quotas actuels sur")." $partition :
";
echo "\n";
echo "
";
//filtre pour garder les lignes intressantes: suppr entte du script repquota_filtre.sh <=> les 7 1res lignes!
//le script lui, filtre certains utilisateurs comme : root, www-se3 et trie par ordre alpha => voir commentaires script
exec("sudo /usr/share/se3/scripts/repquota_filtre.sh $partition |tail +7 >/tmp/quota_filtre");
//filtre les tabulations et les remplace par les balises du tableau
//pour pouvoir mettre la couleur orange des qu'il y a un nombre, je la mets par defaut et la trnnsforme en rouge si delai expire, en transparent si on a un tiret: obligatoire car il y a plein de tiret dans le tableau non distingables
if ($partition=="/home"){
//affiche lien vers statistiques d'occupation pour /home
//filtre les tabulations et les remplace par les balises du tableau
//pour pouvoir mettre la couleur orange des qu'il y a un nombre, je la mets par defaut et la trnnsforme en rouge si delai expire, en transparent si on a un tiret: obligatoire car il y a plein de tiret dans le tableau non distingables
exec("cat /tmp/quota_filtre|gawk -F \"\t\" '{print \" \" $1 \" | \" $2 \" | \" $3 \" | \" $5 \" |
\"}'| sed -e \"s+#FF8C00>Expire+#FF0000>Expir\é+g\" | sed -e \"s+-+ | -+g\" > /tmp/result_quota");
exec("sed -i /tmp/result_quota -e \"s!REPERE1 !popuprecherche(\'stats_user.php?partition=$partition\&uid=!\"");
exec("sed -i /tmp/result_quota -e \"s! REPERE2!','popuprecherche','width=800,height=500');!\"");
system("cat /tmp/result_quota");
exec("rm /tmp/result_quota");
} else {
//pas de lien car script stat_user.sh non valide sur /var/se3
system("cat /tmp/quota_filtre|gawk -F \"\t\" '{print \" | \" $1 \" | \" $2 \" | \" $3 \" | \" $5 \" |
\"}'| sed -e \"s+#FF8C00>Expire+#FF0000>Expir\é+g\" | sed -e \"s+-+ | -+g\"");
}
echo " |
";
} else { //si il y a eu une demande de filtrage
//concatne tous les groupes cherchs dans le tableau liste_sel
$i =0;
$liste_sel = array();
for ($loop=0; $loop < count ($classe_gr) ; $loop++) {
$liste_sel[$i] = $classe_gr[$loop];
$i++;
}
for ($loop=0; $loop < count ($equipe_gr) ; $loop++) {
$liste_sel[$i] = $equipe_gr[$loop];
$i++;
}
for ($loop=0; $loop < count ($matiere_gr) ; $loop++) {
$liste_sel[$i] = $matiere_gr[$loop];
$i++;
}
for ($loop=0; $loop < count ($autres_gr) ; $loop++) {
$liste_sel[$i] = $autres_gr[$loop];
$i++;
}
$liste_sel[$i] = $user;
//cherche user pour savoir s'il existe ensuite
$tabresult=search_people("uid=$user");
echo "Période de grâce actuelle sur $partition : ";
system("sudo repquota $partition|grep \"Block grace time\"|cut -b19-25|sed -e \"s/ //g\"|sed -e \"s/days/ jours/g\"|sed -e \"s/;//g\"");
echo "
";
//affiche tous les tableaux demands
foreach ($liste_sel as $grp){
//TESTE si $user EXISTE OU si $grp est un utilisateur d'un groupe (et non $user) => il faut afficher le tableau!
if(count($tabresult)!=0 or $grp!=$user){
if ($grp!=$user){
echo "Liste des quotas actuels sur $partition pour $grp :
";
} else {
echo "Quota actuel sur $partition pour l'utilisateur $grp :
";
}
echo "\n";
echo "
";
//filtre pour garder les lignes intressantes: suppr entte du script repquota_filtre.sh <=> les 7 1res lignes!
//le script lui, filtre certains utilisateurs comme : root, www-se3 et trie par ordre alpha => voir commentaires script
//filtre les tabulations et les remplace par les balises du tableau
exec("sudo /usr/share/se3/scripts/repquota_filtre.sh $partition $grp|tail +7 > /tmp/quota_filtre ");
//filtre les tabulations et les remplace par les balises du tableau
//pour pouvoir mettre la couleur orange des qu'il y a un nombre, je la mets par defaut et la trnnsforme en rouge si delai expire, en transparent si on a un tiret
if ($partition=="/home"){
//affiche lien vers statistiques d'occupation sur /home
exec("cat /tmp/quota_filtre|gawk -F \"\t\" '{print \" \" $1 \" | \" $2 \" | \" $3 \" | \" $5 \" |
\"}'| sed -e \"s+#FF8C00>Expire+#FF0000>Expir\é+g\" | sed -e \"s+-+ | -+g\" > /tmp/result_quota");
exec("sed -i /tmp/result_quota -e \"s!REPERE1 !popuprecherche(\'stats_user.php?partition=$partition\&uid=!\"");
exec("sed -i /tmp/result_quota -e \"s! REPERE2!','popuprecherche','width=800,height=500');!\"");
system("cat /tmp/result_quota");
exec("rm /tmp/result_quota");
} else {
//pas de stat sur /var/se3 car script stat_user.sh non valide pour cette partition
system("cat /tmp/quota_filtre|gawk -F \"\t\" '{print \" | \" $1 \" | \" $2 \" | \" $3 \" | \" $5 \" |
\"}'| sed -e \"s+#FF8C00>Expire+#FF0000>Expir\é+g\" | sed -e \"s+-+ | -+g\"");
}
echo " |
";
} else { //si utilisateur non valide
if ($user != "") echo "".gettext("L'utilisateur spécifié")." \"$user\" ".gettext("n'est pas valide!")."
";
}
}//fin du foreach ($liste_sel...
}//fin du else du if ($classe_gr=="" and $equipe_gr=="" and $autres_gr=="" and $user=="")
//SUPPRIME LE FICHIER TEMPORAIRE quota_filtre CREE:
exec("rm /tmp/quota_filtre");
//fin de visualisation des quotas demande
}//fin du if($partition <> "") et donc de l'affichage des tableaux
include ("pdp.inc.php");
?>