$value) { ${$key} = $value; } foreach($_GET AS $key => $value) { ${$key} = $value; } $login = ""; $wpkgAdmin = false; $wpkgUser = false; include "inc/wpkg.auth.php"; $DEBUG=1; $urlMD5 = ""; $status = ""; if (! $login ) { echo "\n"; } else { if ( ! $wpkgUser ) { include entete.inc.php; ?>

Déploiement d'applications

Vous n'avez pas les droits nécessaires à l'utilisation de ce module !
"; echo "bash /usr/share/se3/scripts/update_hosts_profiles_xml.sh '$computersRdn' '$parcsRdn' '$ldap_base_dn'\n"; passthru ( "bash /usr/share/se3/scripts/update_hosts_profiles_xml.sh '$computersRdn' '$parcsRdn' '$ldap_base_dn'", $status); echo "\n"; if ( $status == 0 ) { echo "Les fichiers hosts.xml et profiles.xml ont été mis à jour.
\n"; } else { echo "Erreur $status : bash /usr/share/se3/scripts/update_hosts_profiles_xml.sh '$parcsRdn' '$ldap_base_dn'
\n"; } echo "
Retourner à la page Déploiement d'applications.
\n"; } elseif ( isset($updateDroits) ) { echo "
";
			echo "bash /usr/share/se3/scripts/update_droits_xml.sh\n";
			passthru ( "bash /usr/share/se3/scripts/update_droits_xml.sh", $status);
			echo "
\n"; if ( $status == 0 ) { echo "Le fichier droits.xml a été mis à jour.
\n"; } else { echo "Erreur $status : bash /usr/share/se3/scripts/update_droits_xml.sh
\n"; } echo "
Retourner à la page Déploiement d'applications.
\n"; } elseif ( isset($extractAppli) ) { extractAppli($extractAppli); } elseif ( isset($SupprimerAppli) ) { if ( adminWpkg() ) { # Suppression d'une Appli $SupprimerAppli = $_POST['SupprimerAppli']; printHead(); if ( "$SupprimerAppli" != "" ) { $deleteFiles = $_POST['deleteFiles']; if ( count($deleteFiles) > 0 ) { $listdeleteFiles = implode(' ',$deleteFiles); } else { $listdeleteFiles = ''; } # echo "SupprimerAppli = $SupprimerAppli
eleteFiles = $deleteFiles
listdeleteFiles=$listdeleteFiles
\n"; SupprAppli( "$SupprimerAppli", "$listdeleteFiles"); } else { echo "Erreur _POST['SupprimerAppli'] est vide !
"; } echo "
Retourner à la page Déploiement d'applications.
\n"; echo "\n"; } } elseif ( isset($displayDelPackage) ) { if ( adminWpkg() ) { passthru ( "xsltproc --stringparam idPackage '$displayDelPackage' $wpkgwebdir/displayDelPackage.xsl $wpkgroot/packages.xml", $status); } } elseif ( $_GET['upload'] == "1" ) { if ( adminWpkg() ) { # Upload d'un fichier appli.xml $ignoreMD5 = $_POST['ignoreWawadebMD5']; $pasDeDownload = $_POST['noDownload']; if ( $ignoreMD5 || isset($urlWawadebMD5) ) { if (isset($urlWawadebMD5)) { $urlMD5 = $_POST['urlWawadebMD5']; } else { $urlMD5 = ''; } if ( isset($LocalappliXml) ) { # V�rification que l'appli est déjà sur le serveur if ( file_exists("$wpkgroot/$LocalappliXml") ) { printHead(); $appli = basename("$wpkgroot/$LocalappliXml"); configAppli($appli); } else { Erreur(404); echo "Erreur : le fichier '$wpkgroot/$LocalappliXml' est introuvable !
\n"; } } elseif (isset($_FILES['appliXml'])) { $uploaddir = "$wpkgroot/tmp/"; $appli = basename($_FILES['appliXml']['name']); $uploadfile = $uploaddir . $appli; if (move_uploaded_file($_FILES['appliXml']['tmp_name'], $uploadfile)) { printHead(); echo "

Ajout d'une application

\n"; echo "

Transfert du fichier XML

\n"; echo "Le fichier '$appli' a été transféré avec succès.
\n"; flush(); configAppli($appli); echo ""; } else { Erreur(404); echo "Erreur de transfert du fichier '" . $_FILES['appliXml']['tmp_name'] . "' dans $uploadfile.
\n"; echo '
';
							print_r($_FILES);
							echo '
'; } } else { Erreur(404); echo "Erreur : appliXml n'est pas défini !
\n"; } } else { Erreur(404); echo "Erreur : urlWawadebMD5 n'est pas défini et le contrôle MD5 est demandé !
\n"; } echo "
Retourner à la page Déploiement d'applications.
\n"; echo ""; } } elseif ( $_GET['UpdateApplis'] == "1" ) { if ( adminWpkg() ) { # Installation d'applis � partir du d�pot officiel if (isset($urlWawadebMD5)) { $urlMD5 = isset($urlWawadebMD5) ? $_POST['urlWawadebMD5'] : ''; $pasDeDownload = $_POST['noDownload']; $ignoreMD5 = $_POST['ignoreWawadebMD5']; printHead(); if (count($chk) > 0) { echo "

Mise à jour des applications

\n"; while (list ($key,$val) = @each ($chk)) { # Pour eviter : Fatal error: Maximum execution time of 30 seconds exceeded set_time_limit(300); //echo "key=$key, val=$val
\n"; list($forum, $xml, $url) = preg_split('/:/', $val, 3); echo "
Installation de '$xml'
\n"; echo "

Téléchargement

\n"; echo "
";
							passthru ( "cd $wpkgroot/tmp;wget --output-document='$xml' '$url' 2>&1", $status);
							echo "
"; if ($status != 0 ) { echo "Erreur : status=$status
\n"; } else { $LastignoreMD5 = $ignoreMD5; if ($forum == 'test') { $ignoreMD5 = '1'; } configAppli($xml); $ignoreMD5 = $LastignoreMD5; } } } else { echo "Aucune application n'était sélectionnée !
\n"; } echo "
Retourner à la page Déploiement d'applications.
\n"; echo ""; } } } else { # Par d�faut redirection sur admin.html header("Location: http://" . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\') . "/admin.html"); } } } function adminWpkg() { global $wpkgAdmin; if ( ! $wpkgAdmin ) { ?>

Déploiement d'applications

Vous devez avoir des droits d'administration pour utiliser cette fonction !
\n"; if ( $status != 0 ) { #echo "Erreur $status. Le contenu du fichier '$Appli' n'a pas été ajouté aux applications disponibles.
"; } else { #echo "
Félicitation ! Le contenu du fichier $Appli a été ajouté avec succès.
\n"; } echo ''; } function microtime_float() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } function runprint ( $cmd ) { # Ex�cute $cmd en affichant son r�sultat $handle = popen("$cmd 2>&1", 'r'); if (is_resource($handle)) { $timestamp = microtime_float(); $ch = ""; sleep(1); while ( !feof($handle) ) { # Pour eviter : Fatal error: Maximum execution time of 30 seconds exceeded set_time_limit(300); $car = fread($handle, 1); if ( strlen($car) == 0 ) { sleep(1); } else { $ch = "$ch$car"; } if ( (microtime_float() - $timestamp) > 1 ) { echo "$ch"; $ch = ""; $timestamp = microtime_float(); flush(); } } echo "$ch"; flush(); if (pclose($handle)) { return 0; }else { return 1; } } else { return 1; } } function printHead() { ?> Déploiement d'applications &1", $output, $status ); //$last_line = system ( "$wpkgwebdir/bin/associer.sh '$operation' '$package' '$profile' '$login' >/dev/null 2>&1", $status); if ( $status == 10 ) { header("Pragma: no-cache"); header("Cache-Control: max-age=5, s-maxage=5, no-cache, must-revalidate"); //header("Cache-Control: no-cache, must-revalidate"); echo "OK\n"; return true; } else { Erreur(403); header("Pragma: no-cache"); header("Cache-Control: max-age=5, s-maxage=5, no-cache, must-revalidate"); //echo "$last_line\n"; echo "Erreur : $login ne peut pas $operation '$profile' et '$package'\n"; echo "status=$status\n"; echo "iCmd=$iCmd\n"; echo "\n"; foreach($output as $key => $value) { echo " $value\n"; } //echo "last_line=$last_line\n"; return false; } } function SupprAppli ( $idAppli, $delFiles) { global $wpkgwebdir, $login; # echo "Ex�cution de : bash $wpkgwebdir/bin/deletePackage.sh '$idAppli' '$delFiles'
"; echo "

Suppression de l'application '$idAppli'

\n"; echo "
";
	passthru ( "bash $wpkgwebdir/bin/deletePackage.sh '$login' '$idAppli' '$delFiles' 2>&1", $status);
	echo "
\n"; if ( $status != 0 ) { echo "Erreur $status
\n"; } } ?>