[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 <?php 2 3 // inc/wpkg.auth.php 4 // Gère l'authentification sur le serveur se3 de l'interface web de wpkg 5 // La fonction get_xml retourne le fichier xml demandé par l'utilisateur authentifié 6 // 7 // $Id: wpkg.auth.php 8435 2015-02-07 00:44:58Z keyser $ 8 9 10 //include "entete.inc.php"; 11 require_once ('http-conditional.php'); 12 require_once ("config.inc.php"); 13 require_once ("functions.inc.php"); 14 require_once "ldap.inc.php"; 15 require_once "ihm.inc.php"; 16 17 $wpkgroot="/var/se3/unattended/install/wpkg"; 18 $wpkgwebdir="/var/www/se3/wpkg"; 19 20 $login = isauth(); 21 if (! $login ) { 22 echo "<script language=\"JavaScript\" type=\"text/javascript\">\n<!--\n"; 23 $request = '/wpkg/index.php'; 24 echo "top.location.href = '/auth.php?request=" . rawurlencode($request) . "';\n"; 25 echo "//-->\n</script>\n"; 26 exit; 27 } 28 $wpkgAdmin = isWpkgAdmin($login); 29 $wpkgUser = isWpkgUser($login); 30 //echo "<script language=\"JavaScript\" type=\"text/javascript\">\n<!--\n"; 31 //echo "alert('login=$login, wpkgAdmin=$wpkgAdmin, wpkgUser=$wpkgUser');"; 32 //echo "//-->\n</script>\n"; 33 if ( ! $wpkgUser ) { 34 //include "entete.inc.php"; 35 ?> 36 <h2>Déploiement d'applications</h2> 37 <div class=error_msg>Vous n'avez pas les droits nécessaires à l'utilisation de ce module !</div> 38 <? 39 include "pdp.inc.php"; 40 exit; 41 } 42 43 function isWpkgAdmin($login) { 44 // Droit nécessaire pour ajouter ou supprimer une application 45 if (is_admin("computers_is_admin",$login)=="Y") { 46 return true; 47 } else { 48 return false; 49 } 50 } 51 52 function isWpkgUser($login) { 53 global $DEBUG, $wpkgAdmin; 54 if ($wpkgAdmin || is_admin("parc_can_manage",$login)=="Y" || is_admin("parc_can_view",$login)=="Y") { 55 return true; 56 } else { 57 $query="select login from delegation where login='$login' and ( niveau='view' or niveau='manage');"; 58 $result=mysql_query($query) or die("Impossible d'accéder à la table"); 59 $ligne=mysql_num_rows($result); 60 return ( $ligne != 0 ); 61 } 62 } 63 64 function get_html($xsl, $xml, $param) 65 // retourne le résultat de la transformation appliqué au fichier xml 66 { 67 global $DEBUG, $wpkgAdmin, $wpkgUser, $wpkgroot; 68 $parametres = ''; 69 #$nomFichier = $aFilePath[$nPath-1]; 70 #if ($DEBUG > 0) echo "xsl=".$xsl."<br>\n"; 71 #if ($DEBUG > 0) echo "xml=".$xml."<br>\n"; 72 #if ($DEBUG > 0) print_r($param); 73 # $wpkgAdmin=1; 74 if ($wpkgUser) { 75 if (file_exists("$xml")) { 76 // Date: Mon, 15 Jan 2007 10:06:50 GMT 77 $dateLastModification = filemtime("$xml"); 78 if (httpConditional($dateLastModification)) { 79 exit(); //No need to send anything 80 } else { 81 $DateFichier = gmdate('D, d M Y H:i:s \G\M\T', $dateLastModification); 82 header("Content-type: text/html"); 83 header("Last-Modified: $DateFichier"); 84 header("Expires: " . gmdate("D, d M Y H:i:s T", time() )); 85 header("Pragma: no-cache"); 86 //header("Cache-Control: max-age=5, s-maxage=5, no-cache, must-revalidate"); 87 header("Cache-Control: must-revalidate"); 88 header("Content-Disposition: inline; filename=".basename ($xml)); 89 foreach($param as $key=> $val){ 90 $parametres .= " --stringparam '" . $key . "' '" . $val . "'"; 91 } 92 # echo "xsltproc $parametres '$xsl' '$xml' 2>&1"; 93 passthru ( "xsltproc $parametres '$xsl' '$xml' 2>&1", $status); 94 if ($status != 0 ) { 95 echo "<pre>\nErreur xsltproc $parametres $xsl $xml : status=$status</pre><br>\n"; 96 return false; 97 } else { 98 return true; 99 } 100 } 101 } else { 102 header("HTTP/1.1 404 Not found"); 103 header("Status: 404 Not found"); 104 echo "Erreur : Le fichier $xml est introuvable !\n"; 105 echo "Sans doute un problème de droits.\n"; 106 return false; 107 } 108 } else { 109 echo "Erreur : vous n'êtes pas autorisé à afficher cette page !\n"; 110 return false; 111 } 112 } 113 114 function get_xml($filename) 115 // Retourne le fichier xml demandé (profiles.xml, packages.xml ou hosts.xml) si les droits de l'utilisateur en cours le permettent 116 { 117 global $DEBUG, $wpkgAdmin, $wpkgUser, $wpkgroot; 118 #$nomFichier = $aFilePath[$nPath-1]; 119 $PathFichier = "$wpkgroot/$filename"; 120 #if ($DEBUG > 0) echo "nomFichier=".$nomFichier."<br>\n"; 121 #if ($DEBUG > 0) echo "PathFichier=".$PathFichier."<br>\n"; 122 # $wpkgAdmin=1; 123 if ($wpkgUser) { 124 if (file_exists("$PathFichier")) { 125 // Date: Mon, 15 Jan 2007 10:06:50 GMT 126 $dateLastModification = filemtime("$PathFichier"); 127 if (httpConditional($dateLastModification)) { 128 exit(); //No need to send anything 129 } else { 130 //$DateFichier = gmdate("D, d M Y H:i:s T", $dateLastModification); 131 //$DateFichier = gmdate("D, d M Y H:i:s", $dateLastModification) . " GMT" ; 132 $DateFichier = gmdate('D, d M Y H:i:s \G\M\T', $dateLastModification); 133 # mktime ( int hour , int minute , int second , int month , int day , int year , int is_dst ) 134 # $DatePassee = gmdate("D, d M Y H:i:s T", mktime(0, 0, 0, 1, 1, 1998)); 135 header("Content-type: text/xml"); 136 header("Last-Modified: $DateFichier"); 137 //header("Expires: " . gmdate("D, d M Y H:i:s T", time() + 5)); 138 header("Pragma: no-cache"); 139 //header("Cache-Control: max-age=5, s-maxage=5, no-cache, must-revalidate"); 140 header("Cache-Control: must-revalidate"); 141 header("Content-Disposition: inline; filename=".basename ($filename)); 142 #header("Cache-Control: no-store, no-cache, must-revalidate"); 143 //flush(); 144 if ( readfile("$PathFichier") ) { 145 return true; 146 } else { 147 return false; 148 } 149 } 150 } else { 151 header("HTTP/1.1 404 Not found"); 152 header("Status: 404 Not found"); 153 echo "Erreur : Le fichier $PathFichier est introuvable !\n"; 154 echo "Sans doute un problème de droits.\n"; 155 return false; 156 } 157 } else { 158 echo "Erreur : vous n'êtes pas administrateur wpkg !\n"; 159 return false; 160 } 161 } 162 163 function get_fichierCP850($filename) 164 // Retourne le fichier demandé (utilisé pour les fichiers rapports/*.log) 165 // après conversion CP850/CR-LF..819/CR-LF ( dos oem -> iso-8859-1 ) 166 { 167 global $DEBUG, $wpkgAdmin, $wpkgUser, $wpkgroot; 168 #$nomFichier = $aFilePath[$nPath-1]; 169 $PathFichier = "$wpkgroot/$filename"; 170 #if ($DEBUG > 0) echo "nomFichier=".$nomFichier."<br>\n"; 171 #if ($DEBUG > 0) echo "PathFichier=".$PathFichier."<br>\n"; 172 # $wpkgAdmin=1; 173 if ($wpkgUser) { 174 if (file_exists("$PathFichier")) { 175 // Date: Mon, 15 Jan 2007 10:06:50 GMT 176 $DateFichier = gmdate("D, d M Y H:i:s T", filemtime("$PathFichier")); 177 # mktime ( int hour , int minute , int second , int month , int day , int year , int is_dst ) 178 # $DatePassee = gmdate("D, d M Y H:i:s T", mktime(0, 0, 0, 1, 1, 1998)); 179 180 181 header("Content-Transfer-Encoding: 8bit"); 182 header("Content-type: text/html; charset=ISO-8859-1"); // IE ne gère pas bien text/plain :( 183 header("Last-Modified: $DateFichier"); 184 header("Expires: " . gmdate("D, d M Y H:i:s T", time() + 30)); 185 header("Pragma: no-cache"); 186 header("Cache-Control: max-age=5, s-maxage=5, no-cache, must-revalidate"); 187 header("Content-Disposition: inline; filename=".$filename.".txt"); 188 #header("Cache-Control: no-store, no-cache, must-revalidate"); 189 //flush(); 190 echo "<pre>\n"; // toujours pour IE 191 $handle = fopen ("$PathFichier", "r"); 192 $contents = fread ($handle, filesize ($PathFichier)); 193 fclose ($handle); 194 echo htmlspecialchars($contents, ENT_COMPAT | ENT_HTML401, 'ISO-8859-1'); 195 //if ( readfile("$PathFichier") ) { 196 // Conversion OEM -> ANSI déjà faite dans le script (plus de dépendance avec recode) 197 //passthru ( "cat $PathFichier | recode CP850/CR-LF..819/CR-LF", $status); 198 // htmlspecialchars(passthru ( "cat $PathFichier", $status)); 199 echo "\n</pre>\n"; 200 if ( $status == 0 ) { 201 return true; 202 } else { 203 return false; 204 } 205 } else { 206 header("HTTP/1.1 404 Not found"); 207 header("Status: 404 Not found"); 208 echo "Erreur : Le fichier $PathFichier est introuvable !\n"; 209 echo "Sans doute un problème de droits.\n"; 210 return false; 211 } 212 } else { 213 echo "Erreur : vous n'êtes pas autorisé à utiliser cette fonction !\n"; 214 return false; 215 } 216 } 217 ?>
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 |