// récupération des chemins absolus $cheminSmarty = getAbsolutePath() . "plugins/groupead/Smarty"; define('GLPI_ROOT', getAbsolutePath()); include GLPI_ROOT . "inc/includes.php"; // définition de l'emplacement de la bibliothèque define('SMARTY_DIR', $cheminSmarty . "/libs/"); // instanciation de la class Smarty require_once SMARTY_DIR . 'Smarty.class.php'; $smarty = new Smarty(); // définition des dossiers Smarty $smarty->template_dir = $cheminSmarty . "/templates/"; $smarty->compile_dir = $cheminSmarty . "/templates_c/"; $smarty->config_dir = $cheminSmarty . "/configs/"; $smarty->cache_dir = $cheminSmarty . "/cache/"; //Instanciation de la class config $config = new PluginGroupeadConfig(); //Gestion des images $actualiserOption['title'] = "Modifier"; $actualiserOption['alt'] = "Modifier"; $menuaddOption['title'] = "Ajouter AD"; $menuaddOption['alt'] = "Ajouter AD"; $smarty->assign('actualiserIMG', HTML::image(getHttpPath() . 'pics/actualiser.png', $actualiserOption)); $smarty->assign('menuaddIMG', HTML::image(getHttpPath() . 'pics/menu_add.png', $menuaddOption)); //Envoie des variables à Smarty $smarty->assign('infoAD', $config->getAD()); $smarty->assign('httpPath', getHttpPath()); //$smarty->assign('absolutePath', getAbsolutePath()); $smarty->assign('targetCSS', getHttpPath() . "plugins/groupead/css/groupead.css"); //Affichage de l'entête GLPI HTML::header('Configuration Plugin GroupeAD'); //Affichage du plugin
/** * Fonction qui affiche le formulaire du plugin * @param type $id * @param type $options * @return boolean */ function showForm($id) { global $DB; $cheminSmarty = $this->getAbsolutePath() . "plugins/groupead/Smarty"; // définition de l'emplacement de la bibliothèque define('SMARTY_DIR', $cheminSmarty . "/libs/"); // instanciation de la class Smarty require_once SMARTY_DIR . 'Smarty.class.php'; $smarty = new Smarty(); // définition des dossiers Smarty $smarty->template_dir = $cheminSmarty . "/templates/"; $smarty->compile_dir = $cheminSmarty . "/templates_c/"; $smarty->config_dir = $cheminSmarty . "/configs/"; $smarty->cache_dir = $cheminSmarty . "/cache/"; if ($this->getDomain($id) != null) { //vérifiaction si machine dans un domaine $groupe = $this->getGroupeAD($id); asort($groupe[0]); asort($groupe[1]); $smarty->assign('erreur', 'null'); $smarty->assign('groupeOrdinateur', $groupe[0]); $smarty->assign('groupeAD', $groupe[1]); } else { $smarty->assign('erreur', 'nodomain'); $config = new PluginGroupeadConfig(); $listeAD = null; foreach ($config->getAD() as $AD) { $listeAD[] = $AD["suffix"]; } $smarty->assign('listeAD', $listeAD); } $smarty->assign('id', $id); $smarty->assign('httpPath', $this->getHttpPath()); $smarty->assign('endform', HTML::closeForm(false)); $smarty->display('groupeadold.tpl'); }
<?php //============================================================================// //== Plugin pour GLPI - Dévelloppeur: Viduc (Fleury Tristan) - ©2013 ==// //== http://viduc.sugarbox.fr - viduc@sugarbox.fr ==// //============================================================================// /** * Traite toute les demandes ajax du plugin */ define('GLPI_ROOT', getAbsolutePath()); include GLPI_ROOT . "inc/includes.php"; //Instanciation de la class config $config = new PluginGroupeadConfig(); if (isset($_POST['action'])) { if ($_POST['action'] == "modifierAD") { if (strstr($_POST['identification'], "valider")) { $valeur['serveur'] = $_POST['serveur']; $valeur['dc'] = $_POST['dc']; $valeur['suffix'] = $_POST['suffix']; $valeur['login'] = $_POST['login']; $valeur['passwd'] = $_POST['passwd']; $valeur['groupe'] = $_POST['groupe']; $config->setValeurInfoAD($_POST['identification'], $valeur); } else { $config->setValeurInfoAD($_POST['identification'], $_POST['valeur']); } } if ($_POST['action'] == "ajoutAD") { $config->setAD(); } if ($_POST['action'] == "testerAD") {
/** * Scan les domains enregistrés pour voir si la machine y appartient * @param int $id l'id de la machine * @return aray liste des ad dont la machine fait partie */ function verifComputerInDomain($id, $appelant = "front") { $require_adldap = $this->getAbsolutePath() . "plugins/groupead/adldap/adLDAP.php"; if ($appelant == "ajax") { $require_adldap = $this->getAjaxAbsolutePath() . "adldap/adLDAP.php"; } require_once $require_adldap; $name = $this->getItemName($id); $config = new PluginGroupeadConfig(); $retour = null; foreach ($config->getAD() as $AD) { $LDAPConfig = $this->getLDAP($AD["suffix"]); if ($LDAPConfig != NULL && $this->testerAD($LDAPConfig, $require_adldap)) { $serveur[0] = $LDAPConfig['serveur']; $adldap = new adLDAP(array('base_dn' => $LDAPConfig['dc'], 'account_suffix' => $LDAPConfig['suffix'], 'domain_controllers' => $serveur)); $adldap->close(); $adldap->setAdminUsername($LDAPConfig['login']); $adldap->setAdminPassword($LDAPConfig['passwd']); $adldap->connect(); // Récupération des infos de la machine $info = $adldap->computer()->info($name); if ($info[0]["count"] != 0) { $retour[] = $AD["suffix"]; } } } return $retour; }