Retour à la gestion des dossiers personnels\n"); } // Extrait tous les sous-repertoire du home function recursedir ($uid,$pass,$subdir,$cmd){ $f = popen ("/usr/sbin/livre_check_pass $uid $pass $cmd \"$subdir\"","r"); if (!$f){ printf ("Ne peut valider le mot de passe\n"); }else{ while (1){ $s=fgets($f,200); $s = trim($s); if ($s == "") break; $tb[]=$s; } pclose ($f); } return $tb; } // Presente le formulaire pour le code usager function printform(){ printf ("
\n"); printf ("\n"); printf ("
\n"); printf ("\n"); printf ("
Code usager\n"); printf ("
Mot de passe\n"); printf ("
\n"); printf ("\n"); printf ("
\n"); } function formfichier($uid,$pass){ printf ("
\n"); printf ("\n"); printf ("\n"); printf ("\n"); printf ("\n"); printf ("Sélectionner d'abord le fichier à livrer en cliquant sur \"Parcourir\"

\n"); printf ("\n"); printf ("\n"); printf ("

\n"); printf ("

\n"); printf ("Rappel:Le fichier sera envoyé dans votre répertoire \"recu\"\n"); printf ("

\n"); } // Verifie un code usager et mot de passe. // Retourne le numero d'ecole si valide, false sinon function valid_user ($uid,$pass){ global $group; $ret = false; if (valid_input($uid,"Code usager invalide") && valid_input($pass,"Mot de passe invalide")){ $f = popen ("/usr/sbin/livre_check_pass $uid $pass --localuser","r"); if ($f){ $s=fgets($f,100); $s = trim($s); if ($s != ""){ $ret = $s; $s=fgets($f,100); $s = trim($s); if ($s != ""){ $group = $s; } } pclose ($f); } } return $ret; } $group=""; $uid = $PHP_AUTH_USER; $pass = $PHP_AUTH_PW; if (!isset($PHP_AUTH_USER)) { Header("WWW-Authenticate: Basic realm=\"dossiers\""); Header("HTTP/1.0 401 Unauthorized"); echo "A la prochaine\n"; exit; }else{ $ecole = valid_user($uid,$pass); if (! $ecole){ Header("WWW-Authenticate: Basic realm=\"dossiers\""); Header("HTTP/1.0 401 Unauthorized"); echo "A la prochaine\n"; exit; } } ?> \n"); printf ("\n"); printf ("Dossiers personnels\n"); printf ("\n"); printf ("\n"); printf (""); printf ("
\n"); } // $dirtp = "/ecoles/ // include ("/etc/livre.conf"); if ($state == ""){ // Téléchargement ou expédition printf ("
\"Opérations\"
\n"); printf ("
\n"); printf ("
\n"); printf ("

Récupérer un document de votre espace \"home\" (H:)

\n"); if (substr($group,3)=="ens"){ printf ("Récupérer les travaux remis par vos étudiants dans votre espace \"tp\" (I:)

\n"); } printf ("

Expédier un document dans votre espace \"home\" (H:) dans votre dossier reçu

\n"); }else if ($state == "1" || $state== "6"){ // Présente les sous-répertoires du HOME printf ("

\"Sous-répertoires\"
\n"); printf ("
\n"); printf ("
\n"); printf ("

Sélectionnez un répertoire

\n"); if ($state == "1"){ $f = popen ("/usr/sbin/livre_check_pass $uid $pass --userdirs","r"); $nextstate = "2"; }else{ $f = popen ("/usr/sbin/livre_check_pass $uid $pass --proftp","r"); $nextstate = "7"; } if ($f){ while (1){ $s = fgets($f,200); $s = trim($s); if ($s == "") break; $tb[]=$s; } pclose ($f); if (count($tb) > 1) sort ($tb); printf ("Racine
\n"); for ($i=0; $i$e
\n" ,$nextstate ,urlencode($e)); } } printf ("

\n"); retour(); }else if ($state == "2" || $state == "7"){ // Un sous répertoire est choisi, on présente les fichiers if(valid_inputdir($subdir,"Destination invalide")){ $tb = recursedir ($uid,$pass,$subdir ,$state=="2" ? "--userfiles" : "--tpfiles"); if (count($tb)==0){ printf ("
Aucun document dans ce répertoire

\n"); }else{ sort ($tb); printf ("

\"Documents
\n $subdir
\n"); printf ("
\n"); printf ("

\n"); printf ("

\n"); printf ("

Sélectionnez le document à récupérer

\n

"); for ($i=0; $i$e
\n" ,urlencode($e)); } printf ("

\n"); } retour(); }else{ printf ("Validation usager ????\n"); } }else if ($state == "3"){ // On transmet un fichier if (valid_inputdir($file,"Destination invalide")){ $filename = strrchr ($file,"/"); if ($filename){ $filename = substr($filename,1); }else{ $filename = $file; } header("Content-type: application/data"); header ("Content-disposition: attachement; filename=$filename"); $fin = popen ("/usr/sbin/livre_check_pass $uid $pass --userfile \"$file\"","r"); if ($fin != false){ $line = fgets($fin,100); $len = $line + 0; header ("Content-Length: $len"); fpassthru ($fin); } }else{ printf ("\n"); printf ("Validation subdir/file ???\n"); printf ("\n"); } }else if ($state == "4"){ // Livraison dans un sous-repertoire de professeur // Apres validation, on presente le formulaire formfichier($uid,$pass); retour(); }else if ($state == "5"){ // On recoit le fichier a stocker if (valid_input($fichier_name,"Nom de fichier invalid")){ $original = strrchr ($fichier_name,"/"); if ($original){ $original = substr($original,1); }else{ $original = $fichier_name; } // printf ("name = :%s: :%s:\n",$fichier_name,$original); $ss = system ("/usr/sbin/livre_check_pass $uid $pass --userupload \"$fichier\" \"$original\"",$ok); if ($ok == 0){ printf ("
\n"); printf ("Le document a été stocké dans votre répertoire recu
\n"); printf ("
\n"); }else{ printf ("
Attention: Le document n'a pas été stocké correctement\n"); } retour(); } }else{ printf ("

????\n"); } if ($state != "3"){ printf ("\n"); printf ("\n"); }