fixed module order and some minor bugs; removed unneeded parameter in get_pdfEntries()

This commit is contained in:
Roland Gruber 2005-08-02 09:48:55 +00:00
parent 19e65ecdab
commit cd31c1ba13
2 changed files with 28 additions and 28 deletions

View File

@ -892,7 +892,6 @@ class accountContainer {
if ($this->current_page==0) { if ($this->current_page==0) {
if ($this->subpage=='attributes') { if ($this->subpage=='attributes') {
$modules = array_keys($this->module); $modules = array_keys($this->module);
$table = array();
$disabled = false; $disabled = false;
$incompleteModules = array(); $incompleteModules = array();
foreach ($modules as $module) { foreach ($modules as $module) {
@ -947,7 +946,7 @@ class accountContainer {
} }
else { else {
echo "<td><fieldset class=\"".$this->type."edit\"><legend><b>"; echo "<td><fieldset class=\"".$this->type."edit\"><legend><b>";
echo $this->module[$this->order[$this->current_page]]->get_alias($type); echo $this->module[$this->order[$this->current_page]]->get_alias();
echo "</b></legend>\n"; echo "</b></legend>\n";
} }
// display html-code from mdule // display html-code from mdule
@ -972,7 +971,7 @@ class accountContainer {
$return[] = array( $return[] = array(
0 => array('kind' => 'text', 'text' => '&nbsp;') 0 => array('kind' => 'text', 'text' => '&nbsp;')
); );
$pdfStructures = getPDFStructureDefinitions($type); $pdfStructures = getPDFStructureDefinitions($this->type);
$return[] = array( $return[] = array(
0 => array('kind' => 'fieldset', 'legend' => '<b>PDF</b>', 'td' => array('colspan' => 2), 'value' => array(array( 0 => array('kind' => 'fieldset', 'legend' => '<b>PDF</b>', 'td' => array('colspan' => 2), 'value' => array(array(
0 => array('kind' => 'select', 'name' => 'pdfStructure', 'options' => $pdfStructures), 0 => array('kind' => 'select', 'name' => 'pdfStructure', 'options' => $pdfStructures),
@ -1156,9 +1155,6 @@ class accountContainer {
} }
// Return empty array if no objectClass wasn't found // Return empty array if no objectClass wasn't found
if ($line==-1) return array(); if ($line==-1) return array();
//if ($line==-1) trigger_error (sprintf(_("ObjectClass %s required but not defined in ldap."), $objectClass), E_USER_WARNING);
// get casesensitive objectClass name
$objectClassName = substr($_SESSION['ldap']->objectClasses[$line], 6+strpos($_SESSION['ldap']->objectClasses[$line], "NAME '"), strlen($objectClass) );
if (strpos($_SESSION['ldap']->objectClasses[$line], 'MUST (')) { if (strpos($_SESSION['ldap']->objectClasses[$line], 'MUST (')) {
$string_withtail = substr($_SESSION['ldap']->objectClasses[$line], strpos($_SESSION['ldap']->objectClasses[$line], 'MUST (')+6); $string_withtail = substr($_SESSION['ldap']->objectClasses[$line], strpos($_SESSION['ldap']->objectClasses[$line], 'MUST (')+6);
// Now we have a string with all must-attributes // Now we have a string with all must-attributes
@ -1371,19 +1367,22 @@ class accountContainer {
// sortm modules and make all active because all required attributes should be set // sortm modules and make all active because all required attributes should be set
$module = array_keys ($this->module); $module = array_keys ($this->module);
$modulelist = array();
// loop until all modules are in order. // loop until all modules are in order.
// We don't want to loop forever // We don't want to loop forever
$remain = count($module) * count($module); $remain = count($module) * count($module);
$order = array(); $order = array();
while ( (count($module) != count($modulelist)) && ($remain!=0) ) { while ( (count($module) != count($order)) && ($remain!=0) ) {
$remain--; $remain--;
foreach ($module as $moduleitem) { foreach ($module as $moduleitem) {
$required = $this->module[$moduleitem]->get_dependencies($this->type); $required = $this->module[$moduleitem]->get_dependencies($this->type);
$everything_found = true; $everything_found = true;
if (is_array($required['depends'])) { if (is_array($required['depends'])) {
foreach ($required['depends'] as $requireditem) foreach ($required['depends'] as $requireditem) {
if (!in_array($requireditem, $modulelist)) $everthing_found = false; if (!in_array($requireditem, $order)) {
$everything_found = false;
break;
}
}
} }
if ($everything_found && !in_array($moduleitem, $order) ) $order[] = $moduleitem; if ($everything_found && !in_array($moduleitem, $order) ) $order[] = $moduleitem;
} }
@ -1406,19 +1405,22 @@ class accountContainer {
} }
$module = array_keys ($this->module); $module = array_keys ($this->module);
$modulelist = array();
// loop until all modules are in order. // loop until all modules are in order.
// We don't want to loop forever // We don't want to loop forever
$remain = count($module) * count($module); $remain = count($module) * count($module);
$order = array(); $order = array();
while ( (count($module) != count($modulelist)) && ($remain!=0) ) { while ( (count($module) != count($order)) && ($remain!=0) ) {
$remain--; $remain--;
foreach ($module as $moduleitem) { foreach ($module as $moduleitem) {
$required = $this->module[$moduleitem]->get_dependencies($this->type); $required = $this->module[$moduleitem]->get_dependencies($this->type);
$everything_found = true; $everything_found = true;
if (is_array($required['require'])) { if (is_array($required['depends'])) {
foreach ($required['require'] as $requireditem) foreach ($required['depends'] as $requireditem) {
if (!in_array($reuquireditem, $modulelist)) $everthing_found = false; if (!in_array($requireditem, $order)) {
$everything_found = false;
break;
}
}
} }
if ($everything_found && !in_array($moduleitem, $order) ) $order[] = $moduleitem; if ($everything_found && !in_array($moduleitem, $order) ) $order[] = $moduleitem;
} }
@ -1524,14 +1526,14 @@ class accountContainer {
} }
$success = ldap_add($_SESSION['ldap']->server(), $this->dn, $attr); $success = ldap_add($_SESSION['ldap']->server(), $this->dn, $attr);
if ($success) { if ($success) {
$_SESSION['cache']->update_cache($this->$dn, 'add', $attr); $_SESSION['cache']->update_cache($this->dn, 'add', $attr);
$success = ldap_delete($_SESSION['ldap']->server(), $this->dn_orig); $success = ldap_delete($_SESSION['ldap']->server(), $this->dn_orig);
if (!$success) { if (!$success) {
$errors[] = array('ERROR', sprintf(_('Was unable to delete DN: %s.'), $this->dn_orig), ldap_error($_SESSION['ldap']->server())); $errors[] = array('ERROR', sprintf(_('Was unable to delete DN: %s.'), $this->dn_orig), ldap_error($_SESSION['ldap']->server()));
$stopprocessing = true; $stopprocessing = true;
} }
if ($success) if ($success)
$_SESSION['cache']->update_cache($this->$dn, 'delete_dn'); $_SESSION['cache']->update_cache($this->dn, 'delete_dn');
} }
if (!$success) { if (!$success) {
$errors[] = array('ERROR', sprintf(_('Was unable to create DN: %s.'), $this->dn), ldap_error($_SESSION['ldap']->server())); $errors[] = array('ERROR', sprintf(_('Was unable to create DN: %s.'), $this->dn), ldap_error($_SESSION['ldap']->server()));
@ -1550,7 +1552,7 @@ class accountContainer {
$stopprocessing = true; $stopprocessing = true;
} }
else else
$_SESSION['cache']->update_cache($this->$dn, 'add', $attr); $_SESSION['cache']->update_cache($this->dn, 'add', $attr);
} }
unset($attributes[$this->dn]); unset($attributes[$this->dn]);
} }
@ -1566,7 +1568,7 @@ class accountContainer {
$stopprocessing = true; $stopprocessing = true;
} }
else else
$_SESSION['cache']->update_cache($this->$dn, 'modify', $attributes[$this->dn]['modify']); $_SESSION['cache']->update_cache($this->dn, 'modify', $attributes[$this->dn]['modify']);
} }
// add attributes // add attributes
if (isset($attributes[$DNs[$i]]['add']) && !$stopprocessing) { if (isset($attributes[$DNs[$i]]['add']) && !$stopprocessing) {
@ -1576,7 +1578,7 @@ class accountContainer {
$stopprocessing = true; $stopprocessing = true;
} }
else else
$_SESSION['cache']->update_cache($this->$dn, 'add', $attributes[$this->dn]['add']); $_SESSION['cache']->update_cache($this->dn, 'add', $attributes[$this->dn]['add']);
} }
// removce attributes // removce attributes
if (isset($attributes[$DNs[$i]]['remove']) && !$stopprocessing) { if (isset($attributes[$DNs[$i]]['remove']) && !$stopprocessing) {
@ -1586,7 +1588,7 @@ class accountContainer {
$stopprocessing = true; $stopprocessing = true;
} }
else else
$_SESSION['cache']->update_cache($this->$dn, 'remove', $attributes[$this->dn]['remove']); $_SESSION['cache']->update_cache($this->dn, 'remove', $attributes[$this->dn]['remove']);
} }
} }
} }
@ -1614,14 +1616,12 @@ class accountContainer {
/** /**
* Returns a list of possible PDF entries for this account. * Returns a list of possible PDF entries for this account.
* *
* @param string $account_type account type
*
* @return list of PDF entries (array(<name> => <PDF lines>)) * @return list of PDF entries (array(<name> => <PDF lines>))
*/ */
function get_pdfEntries($acount_type) { function get_pdfEntries() {
$return = array(); $return = array();
while(($current = current($this->module)) != null) { while(($current = current($this->module)) != null) {
$return = array_merge($return,$current->get_pdfEntries($account_type)); $return = array_merge($return,$current->get_pdfEntries($this->type));
next($this->module); next($this->module);
} }
$return = array_merge($return,array('main_dn' => array('<block><key>' . _('DN') . '</key><value>' . $this->dn . '</value></block>'))); $return = array_merge($return,array('main_dn' => array('<block><key>' . _('DN') . '</key><value>' . $this->dn . '</value></block>')));

View File

@ -87,7 +87,7 @@ function createModulePDF($accounts,$pdf_structure="default") {
$pdf->AddPage(); $pdf->AddPage();
// Get PDF entries for the current account // Get PDF entries for the current account
$entries = $account->get_pdfEntries($account_type); $entries = $account->get_pdfEntries();
// Now create the PDF file acording to the structure with the submitted values // Now create the PDF file acording to the structure with the submitted values
foreach($structure as $entry) { foreach($structure as $entry) {