update_strings(); } function update_strings() { $this->s_title = _("LDAP schema check"); $this->s_title_long = _("LDAP schema check"); $this->s_info = _("Perform test on your current LDAP schema"); } function execute() { // Establish ldap connection $cv = $this->parent->captured_values; $ldap_l = new LDAP($cv['admin'], $cv['password'], $cv['connection'], FALSE, $cv['tls']); // Detect Schema Info $ldap = new ldapMultiplexer($ldap_l); $ldap->cd($cv['base']); $objectclasses = $ldap->get_objectclasses(); // Check if we can find something $ldap->set_size_limit(1); $res = $ldap->search("(objectClass=*)"); $ldap->set_size_limit(0); // Validate schema $cR = new configRegistry(NULL);; $cR->validateSchemata(TRUE,TRUE,$objectclasses); $info = $cR->getSchemaResults(); $disabled = $cR->getDisabledPlugins(); // Check if the 'AT LEAST' required classes are available. $smarty = get_smarty(); $smarty->assign('message', ""); $smarty->assign('database_initialised', ($res==TRUE)); $smarty->assign('ocCount', count($objectclasses)); // We are fine here once we got object classes. $this->is_completed = count($objectclasses); // Now check if the core requirements are fulfilled. if(in_array('core', $disabled)){ $message = ""; $this->is_completed = FALSE; $coreDefs = core::plInfo(); $coreRequired = $coreDefs['plRequirements']['ldapSchema']; $missing = $version = array(); foreach($coreRequired as $oc => $requirement){ if(isset($info['missing'][$oc])){ $missing[$oc] = $info['missing'][$oc]; } if(isset($info['versionMismatch'][$oc])){ $version[$oc] = $info['versionMismatch'][$oc]; } } $message .= "
"; if(count($missing)){ $message.= _("The following object classes are missing:").msgPool::buildList(array_values($missing)); } if(count($version)){ $message.= _("The following object classes are outdated:").msgPool::buildList(array_values($version)); } $smarty->assign('message', $message); } $smarty->assign('checkFailed', !$this->is_completed); return($smarty->fetch (get_template_path("../setup/setup_schema.tpl"))); } } // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: ?>