/** * 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'); }
// 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 $smarty->display('config.tpl'); //Affichage du pied de page GLPI HTML::footer(); //========================================================================// /** * Récupère le chemin absolue de l'instance glpi * @return String : le chemin absolue (racine principale) */ function getAbsolutePath()
/** * 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; }