From ddeafb35032007108ea136630465427cb548f72d Mon Sep 17 00:00:00 2001 From: Roland Gruber Date: Wed, 15 Feb 2017 21:45:26 +0100 Subject: [PATCH 1/7] replace internal PDF API --- lam/lib/baseModule.inc | 90 +++----------------- lam/lib/modules.inc | 3 +- lam/lib/pdf.inc | 182 +++++++++++++++++++++++++++++++++++++---- 3 files changed, 178 insertions(+), 97 deletions(-) diff --git a/lam/lib/baseModule.inc b/lam/lib/baseModule.inc index dc8b300b..78a9ae4d 100644 --- a/lam/lib/baseModule.inc +++ b/lam/lib/baseModule.inc @@ -33,6 +33,9 @@ $Id$ * @see baseModule */ +/** PDF functions */ +include_once('pdf.inc'); + /** * Parent class of all account modules. * It implements the complete module interface and uses meta-data @@ -838,7 +841,8 @@ abstract class baseModule { // TODO workaround for UFPDF, remove when migrated to other PDF library $value = trim($value); } - $result[get_class($this) . '_' . $name] = array('' . $label . '' . $value . ''); + $result[get_class($this) . '_' . $name][] = new PDFLabelValue($label, $value); +// $result[get_class($this) . '_' . $name] = array('' . $label . '' . $value . ''); } /** @@ -855,7 +859,8 @@ abstract class baseModule { natcasesort($value); $value = implode($delimiter, $value); } - $result[get_class($this) . '_' . $name] = array('' . $label . '' . $value . ''); + $result[get_class($this) . '_' . $name][] = new PDFLabelValue($label, $value); +// $result[get_class($this) . '_' . $name] = array('' . $label . '' . $value . ''); } /** @@ -869,7 +874,8 @@ abstract class baseModule { if (empty($table->rows)) { return; } - if (!empty($table->label)) { + $result[get_class($this) . '_' . $name][] = $table; +/* if (!empty($table->label)) { $result[get_class($this) . '_' . $name][] = '' . $table->label . ':'; } foreach ($table->rows as $row) { @@ -881,7 +887,7 @@ abstract class baseModule { } $xml .= ''; $result[get_class($this) . '_' . $name][] = $xml; - } + }*/ } /** @@ -1963,80 +1969,4 @@ abstract class baseModule { } -/** - * Represents a table for PDF export. - * - * @package PDF - * @author Roland Gruber - */ -class PDFTable { - - /** optional label of table */ - public $label = null; - /** list of PDFTableRow elements */ - public $rows = array(); - - /** - * Constructor - * - * @param String $label label - */ - public function __construct($label = null) { - $this->label = $label; - } - -} - -/** - * Represents a table row for PDF export. - * - * @package PDF - * @author Roland Gruber - */ -class PDFTableRow { - - /** list of PDFTableCell */ - public $cells = array(); - -} - -/** - * Represents a table cell for PDF export. - * - * @package PDF - * @author Roland Gruber - */ -class PDFTableCell { - - const ALIGN_LEFT = 'L'; - const ALIGN_RIGHT = 'R'; - const ALIGN_CENTER = 'C'; - - /** content text of cell */ - public $content = ''; - /** text alignment */ - public $align = self::ALIGN_LEFT; - /** cell width (e.g. "20%") */ - public $width = null; - /** bold text */ - public $bold = false; - - /** - * Constructor. - * - * @param String $content cell content - * @param String $width width (e.g. "20%") - * @param String $align cell alignment (default: left) - * @param boolean $bold print in bold - */ - public function __construct($content, $width = null, $align = null, $bold = false) { - $this->content = empty($content) ? ' ' : $content; - $this->align = ($align == null) ? self::ALIGN_LEFT : $align; - $this->width = $width; - $this->bold = $bold; - } - -} - - ?> \ No newline at end of file diff --git a/lam/lib/modules.inc b/lam/lib/modules.inc index 07abcaa9..f73e8de9 100644 --- a/lam/lib/modules.inc +++ b/lam/lib/modules.inc @@ -2018,7 +2018,8 @@ class accountContainer { if (isset($this->finalDN)) { $dn = $this->finalDN; } - $return = array_merge($return,array('main_dn' => array('' . _('DN') . '' . $dn . ''))); + $return = array_merge($return,array('main_dn' => array(new PDFLabelValue(_('DN'), $dn)))); + //$return = array_merge($return,array('main_dn' => array('' . _('DN') . '' . $dn . ''))); return $return; } diff --git a/lam/lib/pdf.inc b/lam/lib/pdf.inc index 80d82f21..894b0438 100644 --- a/lam/lib/pdf.inc +++ b/lam/lib/pdf.inc @@ -33,6 +33,7 @@ $Id$ /** PDF line width */ define('LAMPDF_LINEWIDTH',190); +define('LAMPDF_FONT_SIZE', 7); /** XML functions */ include_once('xml_parser.inc'); @@ -138,18 +139,21 @@ function createModulePDF($accounts, $pdf_structure="default", $returnAsString = // skip non-existent entries if (isset($entries[$name])) { // Get current entry - $value_entry = $entries[$name]; + $valueEntries = $entries[$name]; // Print entry only when module sumitted values for it - if(is_array($value_entry)) { + if(is_array($valueEntries)) { // Loop over all rows of this entry (most of the time this will be just one) - foreach($value_entry as $line) { + foreach($valueEntries as $valueEntry) { + if ($valueEntry instanceof PDFLabelValue) { + printLabelValue($pdf, $valueEntry, $fontName); + } // Substitue XML syntax with valid FPDF methods - $methods = processLine($line,true,$fontName); + /**$methods = processLine($line,true,$fontName); // Call every method foreach($methods as $method) { call_user_func_array(array(&$pdf,$method[0]),$method[1]); - } + }*/ } } } @@ -177,19 +181,26 @@ function createModulePDF($accounts, $pdf_structure="default", $returnAsString = /** * Creates a section headline. * - * @param string $line section name + * @param PDFEntry $entry content entry * - * @return string XML code for headline + * @return string headline */ -function getSectionHeadline($line) { - $headline_pattern = '/.*(.*)<\/value><\/block>/'; - if(preg_match($headline_pattern,$line,$matches)) { - $valueStyle = processFormatTags($matches[1],''); - return $valueStyle[1]; - } - else { - return ''; - } +function getSectionHeadline($entry) { + return $entry->getLabel(); +} + +/** + * Prints a PDFLabelValue entry. + * + * @param lamPDF $pdf PDF + * @param PDFLabelValue $valueEntry entry + * @param string $fontName font name + */ +function printLabelValue(&$pdf, $valueEntry, $fontName) { + $pdf->SetFont($fontName, 'B', LAMPDF_FONT_SIZE); + $pdf->Cell(50, 5, $valueEntry->getLabel() . ':',0,0,'R',0); + $pdf->SetFont($fontName, '', LAMPDF_FONT_SIZE); + $pdf->MultiCell(0, 5, $valueEntry->getValue(), 0, 'L', 0); } /** @@ -344,3 +355,142 @@ function processAttributes($attrs,$return = array()) { return $return; } } + +interface PDFEntry { + + /** + * Returns the label of the entry. + * + * @return string label + */ + public function getLabel(); + +} + +/** + * Represents a table for PDF export. + * + * @package PDF + * @author Roland Gruber + */ +class PDFTable implements PDFEntry { + + /** optional label of table */ + private $label = ''; + /** list of PDFTableRow elements */ + public $rows = array(); + + /** + * Constructor + * + * @param String $label label + */ + public function __construct($label = null) { + $this->label = $label; + } + + /** + * Returns the label. + * + * @return string $label label + */ + public function getLabel() { + return $this->label; + } + +} + +/** + * Represents a table row for PDF export. + * + * @package PDF + * @author Roland Gruber + */ +class PDFTableRow { + + /** list of PDFTableCell */ + public $cells = array(); + +} + +/** + * Represents a table cell for PDF export. + * + * @package PDF + * @author Roland Gruber + */ +class PDFTableCell { + + const ALIGN_LEFT = 'L'; + const ALIGN_RIGHT = 'R'; + const ALIGN_CENTER = 'C'; + + /** content text of cell */ + public $content = ''; + /** text alignment */ + public $align = self::ALIGN_LEFT; + /** cell width (e.g. "20%") */ + public $width = null; + /** bold text */ + public $bold = false; + + /** + * Constructor. + * + * @param String $content cell content + * @param String $width width (e.g. "20%") + * @param String $align cell alignment (default: left) + * @param boolean $bold print in bold + */ + public function __construct($content, $width = null, $align = null, $bold = false) { + $this->content = empty($content) ? ' ' : $content; + $this->align = ($align == null) ? self::ALIGN_LEFT : $align; + $this->width = $width; + $this->bold = $bold; + } + +} + +/** + * Simple PDF object to print label value entries. + * + * @package PDF + * @author Roland Gruber + */ +class PDFLabelValue implements PDFEntry { + + private $label = ''; + + private $value = ''; + + /** + * Constructor + * + * @param string $label label + * @param string $value value + */ + public function __construct($label, $value) { + $this->label = $label; + $this->value = $value; + } + + /** + * Returns the label. + * + * @return string $label label + */ + public function getLabel() { + return $this->label; + } + + /** + * Returns the value. + * + * @return string $value value + */ + public function getValue() { + return $this->value; + } + + +} From 809cb97f84bc0ebcd4c26d99980fbb76496abb4d Mon Sep 17 00:00:00 2001 From: Roland Gruber Date: Sat, 18 Feb 2017 09:59:57 +0100 Subject: [PATCH 2/7] set correct head line --- lam/lib/pdf.inc | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/lam/lib/pdf.inc b/lam/lib/pdf.inc index 894b0438..d9cb217d 100644 --- a/lam/lib/pdf.inc +++ b/lam/lib/pdf.inc @@ -186,7 +186,7 @@ function createModulePDF($accounts, $pdf_structure="default", $returnAsString = * @return string headline */ function getSectionHeadline($entry) { - return $entry->getLabel(); + return $entry->getHeadline(); } /** @@ -356,14 +356,20 @@ function processAttributes($attrs,$return = array()) { } } +/** + * Common interface for all PDF entries. + * + * @package PDF + * @author Roland Gruber + */ interface PDFEntry { /** - * Returns the label of the entry. + * Returns the head line of the entry. * * @return string label */ - public function getLabel(); + public function getHeadline(); } @@ -398,6 +404,14 @@ class PDFTable implements PDFEntry { return $this->label; } + /** + * {@inheritDoc} + * @see PDFEntry::getHeadline() + */ + public function getHeadline() { + return $this->label; + } + } /** @@ -492,5 +506,12 @@ class PDFLabelValue implements PDFEntry { return $this->value; } + /** + * {@inheritDoc} + * @see PDFEntry::getHeadline() + */ + public function getHeadline() { + return $this->value; + } } From 753b4436565a76b58b60b3c116e11414bad38c07 Mon Sep 17 00:00:00 2001 From: Roland Gruber Date: Sat, 18 Feb 2017 10:13:08 +0100 Subject: [PATCH 3/7] added PDF namespace --- lam/lib/baseModule.inc | 4 +++- lam/lib/lists.inc | 10 +++++----- lam/lib/modules.inc | 3 +-- lam/lib/modules/asteriskExtension.inc | 6 ++++-- lam/lib/modules/fixed_ip.inc | 5 ++++- lam/lib/modules/kolabUser.inc | 5 ++++- lam/lib/modules/ldapPublicKey.inc | 5 ++++- lam/lib/modules/nisNetGroupHost.inc | 5 ++++- lam/lib/modules/nisNetGroupUser.inc | 5 ++++- lam/lib/modules/nisnetgroup.inc | 5 ++++- lam/lib/modules/puppetClient.inc | 5 ++++- lam/lib/modules/pykotaUser.inc | 5 ++++- lam/lib/modules/quota.inc | 5 ++++- lam/lib/modules/range.inc | 5 ++++- lam/lib/modules/systemQuotas.inc | 5 ++++- lam/lib/modules/windowsGroup.inc | 5 ++++- lam/lib/pdf.inc | 18 ++++++++++++++++-- lam/lib/upload.inc | 2 +- 18 files changed, 78 insertions(+), 25 deletions(-) diff --git a/lam/lib/baseModule.inc b/lam/lib/baseModule.inc index 78a9ae4d..89659ca7 100644 --- a/lam/lib/baseModule.inc +++ b/lam/lib/baseModule.inc @@ -1,9 +1,11 @@ type, "accountPDF"); $_SESSION["accountPDF"]->load_account(base64_decode($_POST['clickedAccount'])); - $filename = createModulePDF(array($_SESSION["accountPDF"]),$pdfStruct); + $filename = \LAM\PDF\createModulePDF(array($_SESSION["accountPDF"]),$pdfStruct); unset($_SESSION["accountPDF"]); } // create for all selected accounts @@ -624,7 +624,7 @@ class lamList { $list[$i] = $_SESSION["accountPDF-$i"]; } if (sizeof($list) > 0) { - $filename = createModulePDF($list,$pdfStruct); + $filename = \LAM\PDF\createModulePDF($list,$pdfStruct); for ($i = 0; $i < sizeof($accounts); $i++) { unset($_SESSION["accountPDF-$i"]); } @@ -640,7 +640,7 @@ class lamList { $list[$i] = $_SESSION["accountPDF-$i"]; } if (sizeof($list) > 0) { - $filename = createModulePDF($list,$pdfStruct); + $filename = \LAM\PDF\createModulePDF($list,$pdfStruct); for ($i = 0; $i < $entriesCount; $i++) { // clean session unset($_SESSION["accountPDF-$i"]); @@ -648,7 +648,7 @@ class lamList { } } elseif ($option == 'SESSION') { - $filename = createModulePDF(array($_SESSION[$_POST['PDFSessionID']]),$pdfStruct); + $filename = \LAM\PDF\createModulePDF(array($_SESSION[$_POST['PDFSessionID']]),$pdfStruct); unset($_SESSION[$_POST['PDFSessionID']]); } if ($filename != '') { diff --git a/lam/lib/modules.inc b/lam/lib/modules.inc index f73e8de9..f46b05af 100644 --- a/lam/lib/modules.inc +++ b/lam/lib/modules.inc @@ -2018,8 +2018,7 @@ class accountContainer { if (isset($this->finalDN)) { $dn = $this->finalDN; } - $return = array_merge($return,array('main_dn' => array(new PDFLabelValue(_('DN'), $dn)))); - //$return = array_merge($return,array('main_dn' => array('' . _('DN') . '' . $dn . ''))); + $return = array_merge($return,array('main_dn' => array(new \LAM\PDF\PDFLabelValue(_('DN'), $dn)))); return $return; } diff --git a/lam/lib/modules/asteriskExtension.inc b/lam/lib/modules/asteriskExtension.inc index a54e14cc..51c9b4a4 100644 --- a/lam/lib/modules/asteriskExtension.inc +++ b/lam/lib/modules/asteriskExtension.inc @@ -1,11 +1,13 @@ MultiCell(0, 5, $valueEntry->getValue(), 0, 'L', 0); } +/** + * Prints a PDFTable entry. + * + * @param lamPDF $pdf PDF + * @param PDFTable $valueEntry entry + * @param string $fontName font name + */ +function printTable(&$pdf, $valueEntry, $fontName) { +} + /** * Creates the XML code for an PDF entry. * diff --git a/lam/lib/upload.inc b/lam/lib/upload.inc index 119d8d5e..5d400325 100644 --- a/lam/lib/upload.inc +++ b/lam/lib/upload.inc @@ -294,7 +294,7 @@ class Uploader { break; } // create and save PDF - $pdfContent = createModulePDF(array($_SESSION['mass_pdfAccount']), $pdfStructure, true); + $pdfContent = \LAM\PDF\createModulePDF(array($_SESSION['mass_pdfAccount']), $pdfStructure, true); $fileName = $dn . '.pdf'; $pdfZip->addFromString($fileName, $pdfContent); $_SESSION['mass_pdf']['counter'] ++; From 7ccd41ef11b0bedc68e198508a42da2a8857a35f Mon Sep 17 00:00:00 2001 From: Roland Gruber Date: Sat, 18 Feb 2017 21:10:06 +0100 Subject: [PATCH 4/7] new PDF API --- lam/lib/baseModule.inc | 20 --- lam/lib/pdf.inc | 231 ++++++------------------------ lam/lib/xml_parser.inc | 3 +- lam/templates/pdfedit/pdfpage.php | 4 +- 4 files changed, 48 insertions(+), 210 deletions(-) diff --git a/lam/lib/baseModule.inc b/lam/lib/baseModule.inc index 89659ca7..d9f9895d 100644 --- a/lam/lib/baseModule.inc +++ b/lam/lib/baseModule.inc @@ -836,15 +836,9 @@ abstract class baseModule { if (isset($this->attributes[$attrName]) && (sizeof($this->attributes[$attrName]) > 0)) { natcasesort($this->attributes[$attrName]); $value = implode($delimiter, $this->attributes[$attrName]); - // TODO workarounds for PDF parser, remove when migrated to other PDF library - $value = str_replace("\r\n", " ", $value); - $value = str_replace("\n", " ", $value); - $value = str_replace("\r", " ", $value); - // TODO workaround for UFPDF, remove when migrated to other PDF library $value = trim($value); } $result[get_class($this) . '_' . $name][] = new PDFLabelValue($label, $value); -// $result[get_class($this) . '_' . $name] = array('' . $label . '' . $value . ''); } /** @@ -862,7 +856,6 @@ abstract class baseModule { $value = implode($delimiter, $value); } $result[get_class($this) . '_' . $name][] = new PDFLabelValue($label, $value); -// $result[get_class($this) . '_' . $name] = array('' . $label . '' . $value . ''); } /** @@ -877,19 +870,6 @@ abstract class baseModule { return; } $result[get_class($this) . '_' . $name][] = $table; -/* if (!empty($table->label)) { - $result[get_class($this) . '_' . $name][] = '' . $table->label . ':'; - } - foreach ($table->rows as $row) { - $xml = ''; - foreach ($row->cells as $cell) { - $width = empty($cell->width) ? '' : ' width="' . $cell->width . '"'; - $content = ($cell->bold) ? '' . $cell->content . '' : $cell->content; - $xml .= '' . $content . ''; - } - $xml .= ''; - $result[get_class($this) . '_' . $name][] = $xml; - }*/ } /** diff --git a/lam/lib/pdf.inc b/lam/lib/pdf.inc index 881e939c..18ae05f5 100644 --- a/lam/lib/pdf.inc +++ b/lam/lib/pdf.inc @@ -32,9 +32,16 @@ $Id$ * @package PDF */ -/** PDF line width */ -define('LAMPDF_LINEWIDTH',190); +/** line width */ +define('LAMPDF_LINEWIDTH', 190); +/** line height */ +define('LAMPDF_LINEHEIGHT', 5); +/** width of a label */ +define('LAMPDF_LABELWIDTH', 50); +/** font size */ define('LAMPDF_FONT_SIZE', 7); +/** font size for bigger text */ +define('LAMPDF_FONT_SIZE_BIG', 10); /** XML functions */ include_once('xml_parser.inc'); @@ -42,9 +49,6 @@ include_once('xml_parser.inc'); /** access to PDF configuration files */ include_once('pdfstruct.inc'); -$key = false; -$line_width = LAMPDF_LINEWIDTH; - /** * This function creates the PDF output of one or more accounts. * @@ -65,8 +69,6 @@ function createModulePDF($accounts, $pdf_structure="default", $returnAsString = /** LAM PDF generator class */ include_once("lamPDF.inc"); - global $key; - $account_type = $accounts[0]->get_type(); // Get PDF structure from xml file $load = \LAM\PDF\loadPDFStructure($account_type->getId(), $pdf_structure); @@ -115,23 +117,24 @@ function createModulePDF($accounts, $pdf_structure="default", $returnAsString = else { $section_headline = $name; } - $pdf->setFont($fontName,"B",10); + $pdf->setFont($fontName, "B", LAMPDF_FONT_SIZE_BIG); $pdf->Write(0,$section_headline . ":"); - $pdf->Ln(6); + $pdf->Ln(LAMPDF_LINEHEIGHT); } // We have a section to end elseif($entry['tag'] == "SECTION" && $entry['type'] == "close") { - $pdf->Ln(9); + $pdf->Ln(LAMPDF_LINEHEIGHT * 2); } // We have to include a static text. elseif($entry['tag'] == "TEXT") { - // Load PDF text from structure array - $info_string = $entry['value']; - // Set font for text - $pdf->setFont($fontName,"",10); - $pdf->MultiCell(0,5,$info_string,0,"L",0); - // Print linebreak afterwards - $pdf->Ln(6); + $pdf->setFont($fontName, "", LAMPDF_FONT_SIZE); + $info_string = str_replace("\r", "", $entry['value']); + $info_string = explode("\n", $info_string); + foreach ($info_string as $text) { + $pdf->MultiCell(0, LAMPDF_LINEHEIGHT, trim($text), 0, "L", 0); + $pdf->Ln(0); + } + $pdf->Ln(LAMPDF_LINEHEIGHT * 2); } // We have to include an entry from the account elseif($entry['tag'] == "ENTRY") { @@ -152,16 +155,9 @@ function createModulePDF($accounts, $pdf_structure="default", $returnAsString = else if ($valueEntry instanceof PDFTable) { printTable($pdf, $valueEntry, $fontName); } - // Substitue XML syntax with valid FPDF methods - /**$methods = processLine($line,true,$fontName); - // Call every method - foreach($methods as $method) { - call_user_func_array(array(&$pdf,$method[0]),$method[1]); - }*/ } } } - $key = false; } } } @@ -202,172 +198,42 @@ function getSectionHeadline($entry) { */ function printLabelValue(&$pdf, $valueEntry, $fontName) { $pdf->SetFont($fontName, 'B', LAMPDF_FONT_SIZE); - $pdf->Cell(50, 5, $valueEntry->getLabel() . ':',0,0,'R',0); + $pdf->Cell(LAMPDF_LABELWIDTH, LAMPDF_LINEHEIGHT, $valueEntry->getLabel() . ':', 0, 0, 'R', 0); $pdf->SetFont($fontName, '', LAMPDF_FONT_SIZE); - $pdf->MultiCell(0, 5, $valueEntry->getValue(), 0, 'L', 0); + $pdf->MultiCell(0, LAMPDF_LINEHEIGHT, $valueEntry->getValue(), 0, 'L', 0); + $pdf->Ln(0); } /** * Prints a PDFTable entry. * * @param lamPDF $pdf PDF - * @param PDFTable $valueEntry entry + * @param PDFTable $table entry * @param string $fontName font name */ -function printTable(&$pdf, $valueEntry, $fontName) { -} - -/** - * Creates the XML code for an PDF entry. - * - * @param string $line XML code of PDF entry - * @param boolean $first_td True if this is the first column - * @param String $fontName font name - * - * @return array XML codes - */ -function processLine($line, $first_td = true, $fontName) { - global $key, $line_width; - - // PCRE matching tag - $block_pattern = '/<\/block>/'; - // PCRE matching a tag - $key_pattern = '/()(.+)<\/key>(.*<\/block>)/'; - // PCRE matching a tag - // !!FIXME!! value must contain at least one character - $value_pattern = '/(.*)(.*)<\/value>(<\/block>)/'; - // PCRE matching a tag - $td_pattern = '/(.*?)(.+?)<\/td>(.*<\/block>)/'; - // PCRE matching tag - $tr_pattern = '/<\/tr>/'; - // PCRE matching a

tag - $p_pattern = '/(.*)

(.+)<\/p>(.*<\/block>)/'; - // PCRE matching a
tag - $br_pattern = '/
/'; - - $return = array(); - if(preg_match($key_pattern,$line,$matches)) { - $key = true; - $line_width = $line_width - 50; - $format = processFormatTags($matches[2],'B'); - $return[] = array('setFont',array($fontName,$format[0],7)); - $return[] = array('Cell',array(50,5,$format[1] . ':',0,0,'R',0)); - $return[] = array('setFont',array($fontName,'',7)); - return array_merge($return,processLine($matches[1] . $matches[3],false,$fontName)); +function printTable(&$pdf, $table, $fontName) { + if (!empty($table->getHeadline())) { + $pdf->SetFont($fontName, 'B', LAMPDF_FONT_SIZE); + $pdf->Cell(LAMPDF_LABELWIDTH, LAMPDF_LINEHEIGHT, $table->getHeadline() . ':', 0 , 0, 'L', 0); + $pdf->Ln(LAMPDF_LINEHEIGHT); } - elseif(preg_match($value_pattern,$line,$matches)) { - $format = processFormatTags($matches[2],''); - $return[] = array('setFont',array($fontName,$format[0],7)); - $return[] = array('MultiCell',array(0,5,$format[1],0,'L',0)); - $return[] = array('setFont',array($fontName,'',7)); - return array_merge($return,processLine($matches[1] . $matches[3],true,$fontName)); - } - elseif(preg_match($p_pattern,$line,$matches)) { - $format = processFormatTags($matches[2],''); - $return[] = array('setFont',array($fontName,$format[0],7)); - $return[] = array('Write',array(5,$format[1])); - $return[] = array('setFont',array($fontName,'',7)); - return array_merge($return,processLine($matches[1] . $matches[3],true,$fontName)); - } - elseif(preg_match($td_pattern,$line,$matches)) { - if($first_td && $key) { - $first_td = !$first_td; - $return[] = array('Cell',array(50,5,'',0,0,'L',0)); + foreach ($table->rows as $row) { + foreach ($row->cells as $cell) { + $width = $cell->width; + if (!empty($width) && (strpos($width, '%') !== false)) { + $width = ceil(LAMPDF_LINEWIDTH * substr($width, 0, -1) / 100); + } + if ($cell->bold) { + $pdf->SetFont($fontName, 'B', LAMPDF_FONT_SIZE); + } + $pdf->Cell($width, LAMPDF_LINEHEIGHT, $cell->content, 0, 0, $cell->align, 0); + if ($cell->bold) { + $pdf->SetFont($fontName, '', LAMPDF_FONT_SIZE); + } } - $format = processFormatTags($matches[3],''); - $attrs = processAttributes($matches[2],array('width' => $line_width,'height' => 5,'align' => 'L')); - $return[] = array('setFont',array($fontName,$format[0],7)); - $return[] = array('Cell',array($attrs['width'],$attrs['height'],$format[1],0,0,$attrs['align'],0)); - $return[] = array('setFont',array($fontName,'',7)); - return array_merge($return,processLine($matches[1] . $matches[4],$first_td,$fontName)); - } - elseif(preg_match($br_pattern,$line,$matches)) { - return array(array('Ln',array(5))); - } - elseif(preg_match($block_pattern,$line,$matches)) { - $line_width = LAMPDF_LINEWIDTH; - return array(); - } - elseif(preg_match($tr_pattern,$line,$matches)) { - $line_width = LAMPDF_LINEWIDTH; - return array(array('Ln',array(5))); - } -} - -/** - * Formats the XML code. - * - * @param string $line XML code of PDF entry - * @param string $style style commands - * - * @return array XML code - */ -function processFormatTags($line,$style) { - // PCRE matching a tag - $i_pattern = '/(.*)(.+)<\/i>(.*)/'; - // PCRE matching a tag - $b_pattern = '/(.*)(.+)<\/b>(.*)/'; - // PCRE matching a tag - $u_pattern = '/(.*)(.+)<\/u>(.*)/'; - // Replacement pattern when one of the above pattern matched - $replace = "\$1\$2\$3"; - - if(preg_match($i_pattern,$line,$matches)) { - $style .= "I"; - $line = preg_replace($i_pattern,$replace,$line); - } - if(preg_match($b_pattern,$line,$matches)) { - $style .= "B"; - $line = preg_replace($b_pattern,$replace,$line); - } - if(preg_match($u_pattern,$line,$matches)) { - $style .= "U"; - $line = preg_replace($u_pattern,$replace,$line); - } - return array($style,$line); -} - -/** - * Processes width, height and alignment attributes. - * - * @param string $attrs attributes - * @param array $return XML code - * - * @return array XML code - */ -function processAttributes($attrs,$return = array()) { - global $line_width; - - // PCRE matching width attribute - $width_pattern = '/(.*)width\=\"(\\d+)(\%?)\"(.*)/'; - // PCRE matching height attribute - $height_pattern = '/(.*)height\=\"(\\d+)\"(.*)/'; - // PCRE matching align attribute - $align_pattern = '/(.*)align\=\"(L|R|C)\"(.*)/'; - - // Remove leading and trailing whitespaces - $attrs = trim($attrs); - - if(preg_match($width_pattern,$attrs,$matches)) { - if($matches[3] == '%') { - $return['width'] = ceil($line_width * $matches[2] / 100); - } - else { - $return['width'] = ceil($matches[2]); - } - return processAttributes($matches[1] . $matches[4],$return); - } - elseif(preg_match($height_pattern,$attrs,$matches)) { - $return['height'] = $matches[2]; - return processAttributes($matches[1] . $matches[3],$return); - } - elseif(preg_match($align_pattern,$attrs,$matches)) { - $return['align'] = $matches[2]; - return processAttributes($matches[1] . $matches[3],$return); - } - else { - return $return; + $pdf->Ln(LAMPDF_LINEHEIGHT); } + $pdf->Ln(LAMPDF_LINEHEIGHT); } /** @@ -409,15 +275,6 @@ class PDFTable implements PDFEntry { $this->label = $label; } - /** - * Returns the label. - * - * @return string $label label - */ - public function getLabel() { - return $this->label; - } - /** * {@inheritDoc} * @see PDFEntry::getHeadline() diff --git a/lam/lib/xml_parser.inc b/lam/lib/xml_parser.inc index f06bb328..fb425911 100644 --- a/lam/lib/xml_parser.inc +++ b/lam/lib/xml_parser.inc @@ -60,7 +60,8 @@ class xmlParser { if(file_exists($filename)) { $xmlStructure = array(); $xmlIndex = array(); - xml_parse_into_struct($this->xmlParser, implode("\n", file($filename)), $xmlStructure, $xmlIndex); + $xmlContent = + xml_parse_into_struct($this->xmlParser, implode("", file($filename)), $xmlStructure, $xmlIndex); return array($xmlStructure, $xmlIndex); } return array(); diff --git a/lam/templates/pdfedit/pdfpage.php b/lam/templates/pdfedit/pdfpage.php index aa295ac2..e31b46f1 100644 --- a/lam/templates/pdfedit/pdfpage.php +++ b/lam/templates/pdfedit/pdfpage.php @@ -143,11 +143,11 @@ if(isset($_GET['submit'])) { // add a new text field elseif(isset($_GET['add_text'])) { // Check if text for static text field is specified - if(!isset($_GET['text_text']) || ($_GET['text_text'] == '')) { + if(empty($_GET['text_text'])) { StatusMessage('ERROR',_('No static text specified'),_('The static text must contain at least one character.')); } else { - $entry = array(array('tag' => 'TEXT','type' => 'complete','level' => '2','value' => $_GET['text_text'])); + $entry = array(array('tag' => 'TEXT','type' => 'complete','level' => '2','value' => str_replace("\r", "\n", $_GET['text_text']))); // Insert new field in structure array_splice($_SESSION['currentPDFStructure'],$_GET['add_text_position'],0,$entry); } From d949b1bae4d880cfeb44a8fba469e3f288a5c1eb Mon Sep 17 00:00:00 2001 From: Roland Gruber Date: Sun, 19 Feb 2017 09:14:11 +0100 Subject: [PATCH 5/7] PHPDoc update --- lam/lib/baseModule.inc | 2 +- lam/lib/modules.inc | 2 +- lam/lib/modules/account.inc | 8 +- lam/lib/modules/asteriskAccount.inc | 50 +++++---- lam/lib/modules/asteriskExtension.inc | 6 +- lam/lib/modules/asteriskVoicemail.inc | 6 +- lam/lib/modules/authorizedServiceObject.inc | 6 +- lam/lib/modules/ddns.inc | 112 ++++++++++---------- lam/lib/modules/dhcp_settings.inc | 84 +++++++-------- lam/lib/modules/eduPerson.inc | 6 +- lam/lib/modules/fixed_ip.inc | 6 +- lam/lib/modules/freeRadius.inc | 6 +- lam/lib/modules/hostObject.inc | 6 +- lam/lib/modules/ieee802device.inc | 6 +- lam/lib/modules/inetLocalMailRecipient.inc | 6 +- lam/lib/modules/inetOrgPerson.inc | 6 +- lam/lib/modules/kolabGroup.inc | 6 +- lam/lib/modules/kolabSharedFolder.inc | 6 +- lam/lib/modules/kolabUser.inc | 6 +- lam/lib/modules/ldapPublicKey.inc | 6 +- lam/lib/modules/nisMailAlias.inc | 6 +- lam/lib/modules/nisMailAliasUser.inc | 6 +- lam/lib/modules/nisNetGroupHost.inc | 6 +- lam/lib/modules/nisNetGroupUser.inc | 6 +- lam/lib/modules/nisnetgroup.inc | 6 +- lam/lib/modules/posixAccount.inc | 6 +- lam/lib/modules/posixGroup.inc | 6 +- lam/lib/modules/puppetClient.inc | 6 +- lam/lib/modules/pykotaBillingCode.inc | 26 +++-- lam/lib/modules/pykotaGroup.inc | 42 ++++---- lam/lib/modules/pykotaPrinter.inc | 34 +++--- lam/lib/modules/pykotaUser.inc | 6 +- lam/lib/modules/quota.inc | 6 +- lam/lib/modules/range.inc | 6 +- lam/lib/modules/sambaDomain.inc | 14 ++- lam/lib/modules/sambaGroupMapping.inc | 6 +- lam/lib/modules/sambaSamAccount.inc | 6 +- lam/lib/modules/shadowAccount.inc | 6 +- lam/lib/modules/systemQuotas.inc | 6 +- lam/lib/modules/windowsGroup.inc | 6 +- lam/lib/modules/windowsHost.inc | 22 ++-- lam/lib/modules/windowsUser.inc | 6 +- 42 files changed, 251 insertions(+), 331 deletions(-) diff --git a/lam/lib/baseModule.inc b/lam/lib/baseModule.inc index d9f9895d..b19c5bc5 100644 --- a/lam/lib/baseModule.inc +++ b/lam/lib/baseModule.inc @@ -813,7 +813,7 @@ abstract class baseModule { * Returns the PDF entries for this module. * * @param array $pdfKeys list of PDF keys that are included in document - * @return array list of possible PDF entries + * @return PDFEntry[] list of key => PDFEntry */ public function get_pdfEntries($pdfKeys) { return array(); diff --git a/lam/lib/modules.inc b/lam/lib/modules.inc index f46b05af..7357b07b 100644 --- a/lam/lib/modules.inc +++ b/lam/lib/modules.inc @@ -2006,7 +2006,7 @@ class accountContainer { * Returns a list of possible PDF entries for this account. * * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * @return PDFEntry[] list of key => PDFEntry */ function get_pdfEntries($pdfKeys) { $return = array(); diff --git a/lam/lib/modules/account.inc b/lam/lib/modules/account.inc index 6899f6ea..a85e50fe 100644 --- a/lam/lib/modules/account.inc +++ b/lam/lib/modules/account.inc @@ -220,11 +220,9 @@ class account extends baseModule { } /** - * Returns the PDF entries for this module. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return array list of possible PDF entries - */ + * {@inheritDoc} + * @see baseModule::get_pdfEntries() + */ function get_pdfEntries($pdfKeys) { $return = array(); $this->addSimplePDFField($return, 'description', _('Description')); diff --git a/lam/lib/modules/asteriskAccount.inc b/lam/lib/modules/asteriskAccount.inc index 570620af..88ff00ee 100644 --- a/lam/lib/modules/asteriskAccount.inc +++ b/lam/lib/modules/asteriskAccount.inc @@ -54,7 +54,7 @@ class asteriskAccount extends baseModule implements passwordService { /** * Returns true if this module can manage accounts of the current type, otherwise false. - * + * * @return boolean true if module fits */ public function can_manage() { @@ -67,7 +67,7 @@ class asteriskAccount extends baseModule implements passwordService { * @return array array with meta data */ function get_metaData() { - $return = array(); + $return = array(); $return["is_base"] = false; // alias name $return["alias"] = _("Asterisk"); @@ -134,7 +134,7 @@ class asteriskAccount extends baseModule implements passwordService { 'AstAccountCallGroup' => array( "Headline" => _("Call groups"), 'attr' => 'AstAccountCallGroup', "Text" => _("The user's call groups.") - ), + ), 'AstAccountDTMFMode' => array( "Headline" => _("DTMF mode"), 'attr' => 'AstAccountDTMFMode', "Text" => _("DTMF mode for SIP client configuration.") @@ -244,7 +244,7 @@ class asteriskAccount extends baseModule implements passwordService { "Text" => _("The selected options will not be managed inside LAM. You can use this to reduce the number of displayed input fields.") ), ); - // self service options + // self service options $selfServiceContainer = new htmlTable(); $selfServiceContainer->addElement(new htmlTableExtendedInputField(_('Asterisk realm'), 'asteriskAccount_AsteriskRealm', null)); $selfServiceContainer->addElement(new htmlHelpLink('AsteriskRealm', get_class($this))); @@ -415,7 +415,7 @@ class asteriskAccount extends baseModule implements passwordService { 'help' => 'AstAccountDeny', ); } - + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountPermit')) { $return['upload_columns'][] = array( 'name' => 'asteriskAccount_AstAccountPermit', @@ -487,7 +487,7 @@ class asteriskAccount extends baseModule implements passwordService { 'help' => 'AstAccountMusicOnHold', ); } - + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountExpirationTimestamp')) { $return['upload_columns'][] = array( 'name' => 'asteriskAccount_AstAccountExpirationTimestamp', @@ -523,7 +523,7 @@ class asteriskAccount extends baseModule implements passwordService { 'help' => 'AstAccountIPAddress', ); } - + if (!$this->isBooleanConfigOptionSet('asteriskAccount_hideAstAccountDefaultUser')) { $return['upload_columns'][] = array( 'name' => 'asteriskAccount_AstAccountDefaultUser', @@ -579,7 +579,7 @@ class asteriskAccount extends baseModule implements passwordService { /** * Returns the HTML meta data for the main account page. - * + * * @return htmlElement HTML meta data */ function display_html_attributes() { @@ -975,10 +975,8 @@ class asteriskAccount extends baseModule implements passwordService { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $return = array(); @@ -1056,7 +1054,7 @@ class asteriskAccount extends baseModule implements passwordService { $pwdString = asteriskAccount::buildPasswordString($attributes, $this->moduleSettings, $rawAccounts[$i][$ids['asteriskAccount_AstAccountRealmedPassword']]); $partialAccounts[$i]['AstAccountRealmedPassword'] = $pwdString; } - + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountUserAgent', 'AstAccountUserAgent'); $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountAMAFlags', 'AstAccountAMAFlags'); $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountCallGroup', 'AstAccountCallGroup'); @@ -1075,10 +1073,10 @@ class asteriskAccount extends baseModule implements passwordService { $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountDeny', 'AstAccountDeny'); $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountPermit', 'AstAccountPermit'); $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountPickupGroup', 'AstAccountPickupGroup'); - + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountPort', 'AstAccountPort', 'digit', $this->messages['AstAccountPort'][1], $messages); - + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountQualify', 'AstAccountQualify'); $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountRestrictCID', 'AstAccountRestrictCID'); $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountRTPTimeout', 'AstAccountRTPTimeout'); @@ -1090,13 +1088,13 @@ class asteriskAccount extends baseModule implements passwordService { $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountRegistrationContext', 'AstAccountRegistrationContext'); $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountRegistrationExten', 'AstAccountRegistrationExten'); $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountCanCallForward', 'AstAccountCanCallForward'); - + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountIPAddress', 'AstAccountIPAddress', 'ip', $this->messages['AstAccountIPAddress'][1], $messages); - + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountDefaultUser', 'AstAccountDefaultUser', 'username', $this->messages['AstAccountDefaultUser'][1], $messages); - + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountRegistrationServer', 'AstAccountRegistrationServer'); $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskAccount_AstAccountLastQualifyMilliseconds', 'AstAccountLastQualifyMilliseconds'); } @@ -1120,13 +1118,13 @@ class asteriskAccount extends baseModule implements passwordService { /** * Specifies if this module supports to force that a user must change his password on next login. - * + * * @return boolean force password change supported */ public function supportsForcePasswordChange() { return false; } - + /** * This function is called whenever the password should be changed. Account modules * must change their password attributes only if the modules list contains their module name. @@ -1145,7 +1143,7 @@ class asteriskAccount extends baseModule implements passwordService { $this->attributes['AstAccountRealmedPassword'][0] = asteriskAccount::buildPasswordString($this->attributes, $this->moduleSettings, $password); return array(); } - + /** * Builds the password string for the password attribute. * @@ -1162,7 +1160,7 @@ class asteriskAccount extends baseModule implements passwordService { } return asteriskAccount::hashPassword($attributes['AstAccountCallerID'][0] . ":" . $astRealm . ":" . $password); } - + /** * Hashes a password value to Asterisk format. * @@ -1181,7 +1179,7 @@ class asteriskAccount extends baseModule implements passwordService { *
del: array of attributes to remove *
mod: array of attributes to modify *
info: array of values with informational value (e.g. to be used later by pre/postModify actions) - * + * * Calling this method does not require the existence of an enclosing {@link accountContainer}. * * @param string $fields input fields @@ -1216,7 +1214,7 @@ class asteriskAccount extends baseModule implements passwordService { /** * Returns a list of configuration options. - * + * * Calling this method does not require the existence of an enclosing {@link accountContainer}.
*
* The field names are used as keywords to load and save settings. @@ -1225,7 +1223,7 @@ class asteriskAccount extends baseModule implements passwordService { * @param array $scopes account types (user, group, host) * @param array $allScopes list of all active account modules and their scopes (module => array(scopes)) * @return mixed htmlElement or array of htmlElement - * + * * @see htmlElement */ public function get_configOptions($scopes, $allScopes) { @@ -1303,7 +1301,7 @@ class asteriskAccount extends baseModule implements passwordService { $return[] = $configContainer; return $return; } - + } ?> diff --git a/lam/lib/modules/asteriskExtension.inc b/lam/lib/modules/asteriskExtension.inc index 51c9b4a4..0bcb2acf 100644 --- a/lam/lib/modules/asteriskExtension.inc +++ b/lam/lib/modules/asteriskExtension.inc @@ -797,10 +797,8 @@ class asteriskExtension extends baseModule { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $a = $this->attributes; diff --git a/lam/lib/modules/asteriskVoicemail.inc b/lam/lib/modules/asteriskVoicemail.inc index 9bbccd95..73d7f85a 100644 --- a/lam/lib/modules/asteriskVoicemail.inc +++ b/lam/lib/modules/asteriskVoicemail.inc @@ -362,10 +362,8 @@ class asteriskVoicemail extends baseModule implements passwordService { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $return = array(); diff --git a/lam/lib/modules/authorizedServiceObject.inc b/lam/lib/modules/authorizedServiceObject.inc index 17d99885..50e4173e 100644 --- a/lam/lib/modules/authorizedServiceObject.inc +++ b/lam/lib/modules/authorizedServiceObject.inc @@ -221,10 +221,8 @@ class authorizedServiceObject extends baseModule { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $return = array(); diff --git a/lam/lib/modules/ddns.inc b/lam/lib/modules/ddns.inc index 72396d71..b570cabd 100644 --- a/lam/lib/modules/ddns.inc +++ b/lam/lib/modules/ddns.inc @@ -38,14 +38,14 @@ $Id$ */ class ddns extends baseModule { - + /** standard DDNS settings */ public $ddns = array(); - + /** * Returns true if this module can manage accounts of the current type, otherwise false. - * + * * @return boolean true if module fits */ public function can_manage() { @@ -141,7 +141,7 @@ class ddns extends baseModule { } return $return; } - + /** * This function fills the message array. */ @@ -153,7 +153,7 @@ class ddns extends baseModule { $this->messages['zone'][0] = array('ERROR', 'Please enter a zone name.'); $this->messages['zone_reverse'][0] = array('ERROR', 'Please enter the reverse zone.'); } - + /** * This functions returns true if all needed settings are done. * @@ -175,16 +175,16 @@ class ddns extends baseModule { // Account settings $ip = $this->getDNSServer(); if (!empty($ip) && !check_ip($ip)) return false; - + $zones = $this->getZoneNames(); if (sizeof($zones) < 2) { return false; } } - + return true; } - + /** * Returns a list of modifications which have to be made to the LDAP account. * @@ -200,7 +200,7 @@ class ddns extends baseModule { public function save_attributes() { // done by dhcp_server object } - + /** * This function check if ddns is enable. */ @@ -210,7 +210,7 @@ class ddns extends baseModule { } $ldap = $_SESSION['ldap']->server(); $dn = $_SESSION['config']->get_suffix('dhcp'); - + $search = @ldap_read($ldap,$dn,"dhcpStatements=ddns-update-style interim", array('dn'), 0, 0, 0, LDAP_DEREF_NEVER); if ($search) { $info = @ldap_get_entries($ldap,$search); @@ -226,7 +226,7 @@ class ddns extends baseModule { } return false; } - + /** * Processes user input of the primary module page. * It checks if all input values are correct and updates the associated LDAP attributes. @@ -235,7 +235,7 @@ class ddns extends baseModule { */ public function process_attributes() { $errors = array(); - + // Main Settings and Account have to different processes. if ($this->getAccountContainer()->dn_orig==$_SESSION['config']->get_suffix('dhcp')) { // main settings: @@ -246,7 +246,7 @@ class ddns extends baseModule { if (!$this->check_if_ddns_is_enable()) { return array(); } - + $errors = $this->process_attributes_account(); } @@ -261,41 +261,41 @@ class ddns extends baseModule { return array(); } $errors = array(); - + // Is DDNS active? $active = $_POST['active']; - + // Insert fixed IPs into DNS? $insert_fixed = $_POST['insert_fixed']; - - // Client can contribute which is registered into DNS + + // Client can contribute which is registered into DNS $client_insert = $_POST['client_insert']; - + // The path to the key: $key_path = trim($_POST['key_path']); - + $this->setDynDNSActivated(($active == 'on')); $this->setFixIPs(($insert_fixed == 'on')); $this->setIgnoreClientUpdates(($client_insert == 'on')); - + $this->setUpdateKey($key_path); if (!empty($key_path)) { if (str_replace("\"","",$_POST['key_path']) != $key_path) { $errors[] = $this->messages['key_path'][1]; } } - + return $errors; } - + /** * Process for account */ public function process_attributes_account() { $errors = array(); - + $ip = trim($_POST['ip']); $zone = trim($_POST['zone']); $zone_reverse = trim($_POST['zone_reverse']); @@ -306,7 +306,7 @@ class ddns extends baseModule { $errors[] = $this->messages['ip'][0]; } } - + for ($i = 0; $i < sizeof($this->attributes['dhcpStatements']); $i++) { if (substr($this->attributes['dhcpStatements'][$i], 0, 5) == 'zone ') { unset($this->attributes['dhcpStatements'][$i]); @@ -314,7 +314,7 @@ class ddns extends baseModule { $i--; } } - + // Zone inserted? if (!empty($zone)) { if (!empty($ip)) { @@ -329,7 +329,7 @@ class ddns extends baseModule { $errors[] = $this->messages['zone'][0]; } } - + // Zone reverse inserted? if (!empty($zone_reverse)) { if (!empty($ip)) { @@ -346,10 +346,10 @@ class ddns extends baseModule { } return $errors; } - + /** * Returns the HTML meta data for the main account page. - * + * * @return htmlElement HTML meta data */ public function display_html_attributes() { @@ -372,7 +372,7 @@ class ddns extends baseModule { $return->addElement($keyInput); } else { - // Account edit + // Account edit if (!$this->check_if_ddns_is_enable()) { $return->addElement(new htmlOutputText(_("DDNS ist not activated. You can activate it in the DHCP settings (DDNS)."))); } @@ -380,7 +380,7 @@ class ddns extends baseModule { // DNS server $serverInput = new htmlTableExtendedInputField(_('IP address of the DNS server'), 'ip', $this->getDNSServer(), 'dns'); $return->addElement($serverInput, true); - + $zones = $this->getZoneNames(); $zone = ''; $revzone = ''; @@ -398,15 +398,13 @@ class ddns extends baseModule { $return->addElement($revZoneInput); } } - + return $return; } - + /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ public function get_pdfEntries($pdfKeys) { // attributes are taken from DHCP server object @@ -427,7 +425,7 @@ class ddns extends baseModule { $this->addPDFKeyValue($result, 'reverseZone', _('Reverse zone name'), $revzone); return $result; } - + /** * Returns the IP of the DNS server. * @@ -450,7 +448,7 @@ class ddns extends baseModule { } return $return; } - + /** * Returns the zone names. * @@ -478,10 +476,10 @@ class ddns extends baseModule { $return[1] = $revZone; return $return; } - + /** * Returns if DDNS is activated. - * + * * @return boolean activated */ private function isDynDNSActivated() { @@ -496,10 +494,10 @@ class ddns extends baseModule { } return $return; } - + /** * Sets if DDNS is activated. - * + * * @param boolean $activated activated */ private function setDynDNSActivated($activated) { @@ -518,10 +516,10 @@ class ddns extends baseModule { $this->attributes['dhcpStatements'][] = 'ddns-update-style none'; } } - + /** * Returns if fixed IPs are added to DDNS. - * + * * @return boolean add fixed IPs */ private function addFixIPs() { @@ -536,10 +534,10 @@ class ddns extends baseModule { } return $return; } - + /** * Sets if client updates are ignored. - * + * * @param boolean $add add fixed IPs */ private function setFixIPs($add) { @@ -555,10 +553,10 @@ class ddns extends baseModule { $this->attributes['dhcpStatements'][] = 'update-static-leases true'; } } - + /** * Returns if client updates are ignored. - * + * * @return boolean ignore client updates */ private function isIgnoreClientUpdates() { @@ -573,10 +571,10 @@ class ddns extends baseModule { } return $return; } - + /** * Sets if client updates are ignored. - * + * * @param boolean $ignore ignore client updates */ private function setIgnoreClientUpdates($ignore) { @@ -595,10 +593,10 @@ class ddns extends baseModule { $this->attributes['dhcpStatements'][] = 'ignore client-updates'; } } - + /** * Returns the key for DNS updates. - * + * * @return String key */ private function getUpdateKey() { @@ -613,10 +611,10 @@ class ddns extends baseModule { } return $return; } - + /** * Sets the key for DNS updates. - * + * * @param String $key key */ private function setUpdateKey($key) { @@ -636,7 +634,7 @@ class ddns extends baseModule { /** * This function loads the LDAP attributes when an account should be loaded. - * + * * Calling this method requires the existence of an enclosing {@link accountContainer}.
*
* By default this method loads the object classes and accounts which are specified in {@link getManagedObjectClasses()} @@ -647,7 +645,7 @@ class ddns extends baseModule { public function load_attributes($attributes) { // load nothing, attributes are saved in "dhcp_settings" module } - + /** * In this function the LDAP account is built up. * @@ -676,7 +674,7 @@ class ddns extends baseModule { } return $messages; } - + } ?> diff --git a/lam/lib/modules/dhcp_settings.inc b/lam/lib/modules/dhcp_settings.inc index cd650131..48fea0d8 100644 --- a/lam/lib/modules/dhcp_settings.inc +++ b/lam/lib/modules/dhcp_settings.inc @@ -39,10 +39,10 @@ $Id$ * @return boolean true or false **/ if (!function_exists('check_ip')) { - + /** * Checks if the given IP is valid. - * + * * @param String $ip IP address * @param boolean $subnet IP must be a subnet */ @@ -89,7 +89,7 @@ class dhcp_settings extends baseModule { private $allowDenyOptions; /** LDAP attributes */ public $attributes; - + /** * Creates a new dhcp_settings object. * @@ -114,7 +114,7 @@ class dhcp_settings extends baseModule { /** * Returns true if this module can manage accounts of the current type, otherwise false. - * + * * @return boolean true if module fits */ public function can_manage() { @@ -315,7 +315,7 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I ); return $return; } - + /** * This function fills the message array. */ @@ -343,7 +343,7 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I $this->messages['domainname'][2] = array('ERROR', _('The domain name includes invalid characters. Valid characters are A-Z, a-z, 0-9, ".", "_","-".')); $this->messages['domainname'][5] = array('ERROR', _('Account %s:') . ' dhcp_settings_domainName', _('The domain name includes invalid characters. Valid characters are A-Z, a-z, 0-9, ".", "_","-".')); } - + /** * Returns a list of modifications which have to be made to the LDAP account. * @@ -366,7 +366,7 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I $return = parent::save_attributes(); return $return; } - + /** * Processes user input of the primary module page. * It checks if all input values are correct and updates the associated LDAP attributes. @@ -406,7 +406,7 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I } $this->setUnknownClients($_POST['unknownClients']); } - + // Check domainname: if (!empty($_POST['domainname'])) $_POST['domainname'] = trim($_POST['domainname']); if (!empty($_POST['domainname'])) { @@ -441,7 +441,7 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I } } $this->setDHCPOption('domain-name-servers', $_POST['dns']); - + // Lease Time if (!empty($_POST['lease_time'])) { $_POST['lease_time'] = trim($_POST['lease_time']); @@ -450,7 +450,7 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I if (!is_numeric($_POST['lease_time']) && !empty($_POST['lease_time'])) { $errors[] = $this->messages['lease_time'][0]; } - + // Max lease Time if (!empty($_POST['max_lease_time'])) { $_POST['max_lease_time'] = trim($_POST['max_lease_time']); @@ -459,7 +459,7 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I if (!is_numeric($_POST['max_lease_time']) && !empty($_POST['max_lease_time'])) { $errors[] = $this->messages['max_lease_time'][0]; } - + // Default Gateway if (!empty($_POST['routers'])) { $_POST['routers'] = trim($_POST['routers']); @@ -468,7 +468,7 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I } } $this->setDHCPOption('routers', $_POST['routers']); - + // Netbios if (!empty($_POST['netbios'])) $_POST['netbios'] = trim($_POST['netbios']); $netbiosServers = explode(', ', $_POST['netbios']); @@ -483,9 +483,9 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I $errors[] = $this->messages['netbios'][0]; } $this->setDHCPOption('netbios-name-servers', $_POST['netbios']); - + $this->setDHCPOption('netbios-node-type', $_POST['netbios_node_type']); - + if ($this->getAccountContainer()->dn_orig!=$_SESSION['config']->get_suffix('dhcp')) { // Check subnet $_POST['subnet'] = trim($_POST['subnet']); @@ -500,10 +500,10 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I } } $this->attributes['dhcpComments'][0] = $_POST['description']; - + return $errors; } - + /** * Checks if the subnet mask is valid. * @@ -523,7 +523,7 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I } return preg_match('/^1*0*$/', $bits); } - + /** * Calculates the net mask from the subnet. * @@ -539,10 +539,10 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I } return $num; } - + /** * Returns the HTML meta data for the main account page. - * + * * @return htmlElement HTML meta data */ public function display_html_attributes() { @@ -593,7 +593,7 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I $nodeSelect = new htmlTableExtendedSelect('netbios_node_type', $nodeOptions, array($nodeType), _('Netbios node type'), 'netbios_type'); $nodeSelect->setHasDescriptiveElements(true); $return->addElement($nodeSelect, true); - + if ($this->getAccountContainer()->dn_orig!=$_SESSION['config']->get_suffix('dhcp')) { // unknown clients $unknownClients = $this->getUnknownClients(); @@ -622,7 +622,7 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I $return->addElement(new htmlTableExtendedInputField(_('Description'), 'description', $description, 'description'), true); return $return; } - + /** * Loads the values of an account profile into internal variables. * @@ -632,16 +632,16 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I // profile mappings in meta data parent::load_profile($profile); $this->attributes['cn'][0] = $profile['cn'][0]; - + $this->setDefaultLeaseTime($profile['lease_time'][0]); $this->setMaxLeaseTime($profile['max_lease_time'][0]); - + $this->setDHCPOption('domain-name', $profile['domainname'][0]); $this->setDHCPOption('domain-name-servers', $profile['dns'][0]); $this->setDHCPOption('routers', $profile['routers'][0]); $this->setDHCPOption('netbios-name-servers', $profile['netbios'][0]); $this->setDHCPOption('netbios-node-type', $profile['netbios_node_type'][0]); - + if ($this->getAccountContainer()->dn_orig!=$_SESSION['config']->get_suffix('dhcp')) { $this->setDHCPOption('subnet-mask', $profile['subnet'][0]); @@ -655,12 +655,10 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I $this->attributes['dhcpNetMask'][0] = $num; } } - + /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $nodeType = $this->getDHCPOption('netbios-node-type'); @@ -688,10 +686,10 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I $this->addSimplePDFField($return, 'netMask', _('Net mask'), 'dhcpNetMask'); return $return; } - + /** * Returns a DHCP option. - * + * * @param String $name option name * @return String value */ @@ -709,10 +707,10 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I } return $return; } - + /** * Sets a DHCP option. - * + * * @param String $name option name * @param String $value option value */ @@ -733,7 +731,7 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I /** * Returns the default lease time. - * + * * @return String time */ private function getDefaultLeaseTime() { @@ -748,10 +746,10 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I } return $return; } - + /** * Sets the default lease time. - * + * * @param String $time time */ private function setDefaultLeaseTime($time) { @@ -771,7 +769,7 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I /** * Returns the unknown clients option. - * + * * @return String unknown clients value */ private function getUnknownClients() { @@ -787,10 +785,10 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I } return $return; } - + /** * Sets the unknown clients option. - * + * * @param String $option allow/deny */ private function setUnknownClients($option) { @@ -811,7 +809,7 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I /** * Returns the maximum lease time. - * + * * @return String time */ private function getMaxLeaseTime() { @@ -826,10 +824,10 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I } return $return; } - + /** * Sets the maximum lease time. - * + * * @param String $time time */ private function setMaxLeaseTime($time) { @@ -846,7 +844,7 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I $this->attributes['dhcpStatements'][] = 'max-lease-time ' . $time; } } - + /** * In this function the LDAP account is built up. * diff --git a/lam/lib/modules/eduPerson.inc b/lam/lib/modules/eduPerson.inc index f2e1610c..c7b810b1 100644 --- a/lam/lib/modules/eduPerson.inc +++ b/lam/lib/modules/eduPerson.inc @@ -548,10 +548,8 @@ class eduPerson extends baseModule { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $return = array(); diff --git a/lam/lib/modules/fixed_ip.inc b/lam/lib/modules/fixed_ip.inc index 216fce4d..37c5526c 100644 --- a/lam/lib/modules/fixed_ip.inc +++ b/lam/lib/modules/fixed_ip.inc @@ -731,10 +731,8 @@ class fixed_ip extends baseModule { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $return = array(); diff --git a/lam/lib/modules/freeRadius.inc b/lam/lib/modules/freeRadius.inc index b193c6f2..6753b9ab 100644 --- a/lam/lib/modules/freeRadius.inc +++ b/lam/lib/modules/freeRadius.inc @@ -685,10 +685,8 @@ class freeRadius extends baseModule { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $return = array(); diff --git a/lam/lib/modules/hostObject.inc b/lam/lib/modules/hostObject.inc index 27408214..d2d35e4e 100644 --- a/lam/lib/modules/hostObject.inc +++ b/lam/lib/modules/hostObject.inc @@ -195,10 +195,8 @@ class hostObject extends baseModule { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $return = array(); diff --git a/lam/lib/modules/ieee802device.inc b/lam/lib/modules/ieee802device.inc index ba496090..baacf59b 100644 --- a/lam/lib/modules/ieee802device.inc +++ b/lam/lib/modules/ieee802device.inc @@ -155,10 +155,8 @@ class ieee802device extends baseModule { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $return = array(); diff --git a/lam/lib/modules/inetLocalMailRecipient.inc b/lam/lib/modules/inetLocalMailRecipient.inc index b8e4c6e1..d8163265 100644 --- a/lam/lib/modules/inetLocalMailRecipient.inc +++ b/lam/lib/modules/inetLocalMailRecipient.inc @@ -344,10 +344,8 @@ class inetLocalMailRecipient extends baseModule { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $return = array(); diff --git a/lam/lib/modules/inetOrgPerson.inc b/lam/lib/modules/inetOrgPerson.inc index 4589a067..b355ae73 100644 --- a/lam/lib/modules/inetOrgPerson.inc +++ b/lam/lib/modules/inetOrgPerson.inc @@ -1970,10 +1970,8 @@ class inetOrgPerson extends baseModule implements passwordService { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $return = array(); diff --git a/lam/lib/modules/kolabGroup.inc b/lam/lib/modules/kolabGroup.inc index 4402dd53..d30e7cbf 100644 --- a/lam/lib/modules/kolabGroup.inc +++ b/lam/lib/modules/kolabGroup.inc @@ -390,10 +390,8 @@ class kolabGroup extends baseModule { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $return = array(); diff --git a/lam/lib/modules/kolabSharedFolder.inc b/lam/lib/modules/kolabSharedFolder.inc index 649588e7..4d31ab8b 100644 --- a/lam/lib/modules/kolabSharedFolder.inc +++ b/lam/lib/modules/kolabSharedFolder.inc @@ -510,10 +510,8 @@ class kolabSharedFolder extends baseModule { // TODO folder type } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $return = array(); diff --git a/lam/lib/modules/kolabUser.inc b/lam/lib/modules/kolabUser.inc index 6187c448..77f5f75e 100644 --- a/lam/lib/modules/kolabUser.inc +++ b/lam/lib/modules/kolabUser.inc @@ -699,10 +699,8 @@ class kolabUser extends baseModule { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $return = array(); diff --git a/lam/lib/modules/ldapPublicKey.inc b/lam/lib/modules/ldapPublicKey.inc index 93201e57..097b3313 100644 --- a/lam/lib/modules/ldapPublicKey.inc +++ b/lam/lib/modules/ldapPublicKey.inc @@ -282,10 +282,8 @@ class ldapPublicKey extends baseModule { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $return = array(); diff --git a/lam/lib/modules/nisMailAlias.inc b/lam/lib/modules/nisMailAlias.inc index 0d7f6bc0..12f6adb2 100644 --- a/lam/lib/modules/nisMailAlias.inc +++ b/lam/lib/modules/nisMailAlias.inc @@ -465,10 +465,8 @@ class nisMailAlias extends baseModule { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $return = array(); diff --git a/lam/lib/modules/nisMailAliasUser.inc b/lam/lib/modules/nisMailAliasUser.inc index fad3ee73..301935df 100644 --- a/lam/lib/modules/nisMailAliasUser.inc +++ b/lam/lib/modules/nisMailAliasUser.inc @@ -521,10 +521,8 @@ class nisMailAliasUser extends baseModule { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $return = array(); diff --git a/lam/lib/modules/nisNetGroupHost.inc b/lam/lib/modules/nisNetGroupHost.inc index 278461d1..22ee257d 100644 --- a/lam/lib/modules/nisNetGroupHost.inc +++ b/lam/lib/modules/nisNetGroupHost.inc @@ -252,10 +252,8 @@ class nisNetGroupHost extends nisNetGroupUser { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $return = array(); diff --git a/lam/lib/modules/nisNetGroupUser.inc b/lam/lib/modules/nisNetGroupUser.inc index 9b5ac576..d5f019f2 100644 --- a/lam/lib/modules/nisNetGroupUser.inc +++ b/lam/lib/modules/nisNetGroupUser.inc @@ -470,10 +470,8 @@ class nisNetGroupUser extends baseModule { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $return = array(); diff --git a/lam/lib/modules/nisnetgroup.inc b/lam/lib/modules/nisnetgroup.inc index a9722fae..106087da 100644 --- a/lam/lib/modules/nisnetgroup.inc +++ b/lam/lib/modules/nisnetgroup.inc @@ -572,10 +572,8 @@ class nisnetgroup extends baseModule { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $return = array(); diff --git a/lam/lib/modules/posixAccount.inc b/lam/lib/modules/posixAccount.inc index 82fc52bc..1b592c2c 100644 --- a/lam/lib/modules/posixAccount.inc +++ b/lam/lib/modules/posixAccount.inc @@ -1826,10 +1826,8 @@ class posixAccount extends baseModule implements passwordService { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $uidLabel = _('User name'); diff --git a/lam/lib/modules/posixGroup.inc b/lam/lib/modules/posixGroup.inc index e670a607..a42f4766 100644 --- a/lam/lib/modules/posixGroup.inc +++ b/lam/lib/modules/posixGroup.inc @@ -613,10 +613,8 @@ class posixGroup extends baseModule implements passwordService { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $return = array(); diff --git a/lam/lib/modules/puppetClient.inc b/lam/lib/modules/puppetClient.inc index f7e9540d..8df3810f 100644 --- a/lam/lib/modules/puppetClient.inc +++ b/lam/lib/modules/puppetClient.inc @@ -398,10 +398,8 @@ class puppetClient extends baseModule { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $return = array(); diff --git a/lam/lib/modules/pykotaBillingCode.inc b/lam/lib/modules/pykotaBillingCode.inc index 26c4813d..0416ae6b 100644 --- a/lam/lib/modules/pykotaBillingCode.inc +++ b/lam/lib/modules/pykotaBillingCode.inc @@ -33,13 +33,13 @@ $Id$ * @package modules */ class pykotaBillingCode extends baseModule { - + /** cache for existing codes (array(dn1 => pykotaBillingCode1, dn2 => pykotaBillingCode2)) */ private $codeCache = null; - + /** * Returns true if this module can manage accounts of the current type, otherwise false. - * + * * @return boolean true if module fits */ public function can_manage() { @@ -50,7 +50,7 @@ class pykotaBillingCode extends baseModule { * Returns meta data that is interpreted by parent class * * @return array array with meta data - * + * * @see baseModule::get_metaData() */ function get_metaData() { @@ -132,7 +132,7 @@ class pykotaBillingCode extends baseModule { /** * Returns the HTML meta data for the main account page. - * + * * @return htmlElement HTML meta data */ function display_html_attributes() { @@ -206,7 +206,7 @@ class pykotaBillingCode extends baseModule { } return $errors; } - + /** * In this function the LDAP account is built up. * @@ -251,12 +251,10 @@ class pykotaBillingCode extends baseModule { } return $messages; } - + /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $return = array(); @@ -267,10 +265,10 @@ class pykotaBillingCode extends baseModule { $this->addSimplePDFField($return, 'pykotaPageCounter', _('Page count')); return $return; } - + /** * Returns if the given billing code already exists. - * + * * @param String $code pykotaBillingCode attribute value * @return boolean pykotaBillingCode exists */ @@ -301,7 +299,7 @@ class pykotaBillingCode extends baseModule { } } } - + } diff --git a/lam/lib/modules/pykotaGroup.inc b/lam/lib/modules/pykotaGroup.inc index cdfead4b..c3d74dd2 100644 --- a/lam/lib/modules/pykotaGroup.inc +++ b/lam/lib/modules/pykotaGroup.inc @@ -33,18 +33,18 @@ $Id$ * @package modules */ class pykotaGroup extends baseModule { - + /** cache for cn attribute */ private $cnCache = null; /** cache for pykotaGroupName attribute */ private $pykotaGroupNameCache = null; /** list of limit options label => value */ private $limitOptions; - + /** * Returns if this module also manages the structural object class pykotaObject. * This is overridden by a submodule that must provide the structural object class. - * + * * @return boolean structural usage */ public function isStructural() { @@ -71,7 +71,7 @@ class pykotaGroup extends baseModule { /** * Returns true if this module can manage accounts of the current type, otherwise false. - * + * * @return boolean true if module fits */ public function can_manage() { @@ -82,7 +82,7 @@ class pykotaGroup extends baseModule { * Returns meta data that is interpreted by parent class * * @return array array with meta data - * + * * @see baseModule::get_metaData() */ function get_metaData() { @@ -207,7 +207,7 @@ class pykotaGroup extends baseModule { /** * Returns the HTML meta data for the main account page. - * + * * @return htmlElement HTML meta data */ function display_html_attributes() { @@ -352,7 +352,7 @@ class pykotaGroup extends baseModule { /** * This function is used to check if all settings for this module have been made. - * + * * Calling this method requires the existence of an enclosing {@link accountContainer}.
*
* This function tells LAM if it can create/modify the LDAP account. If your module needs any @@ -386,7 +386,7 @@ class pykotaGroup extends baseModule { } } } - + /** * In this function the LDAP account is built up. * @@ -457,12 +457,10 @@ class pykotaGroup extends baseModule { } return $messages; } - + /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $return = array(); @@ -477,10 +475,10 @@ class pykotaGroup extends baseModule { $this->addPDFKeyValue($return, 'pykotaLimitBy', _('Limit type'), $limitByValue); return $return; } - + /** * Returns if the cn attribute should be managed. - * + * * @return boolean manage cn attribute */ private function manageCn() { @@ -500,7 +498,7 @@ class pykotaGroup extends baseModule { /** * Returns if the description attribute should be managed. - * + * * @return boolean manage description attribute */ private function manageDescription() { @@ -517,10 +515,10 @@ class pykotaGroup extends baseModule { } return false; } - + /** * Returns if the given cn already exists. - * + * * @param String $cn cn attribute value * @return boolean cn exists */ @@ -533,7 +531,7 @@ class pykotaGroup extends baseModule { /** * Returns if the given pykotaGroupName already exists. - * + * * @param String $pykotaGroupName pykotaGroupName attribute value * @return boolean pykotaGroupName exists */ @@ -543,7 +541,7 @@ class pykotaGroup extends baseModule { } return in_array($pykotaGroupName, $this->pykotaGroupNameCache); } - + /** * Loads the list of group names into the cache. */ @@ -560,10 +558,10 @@ class pykotaGroup extends baseModule { } } } - + /** * Returns the current group name (cn) of this account. - * + * * @return String group name */ private function getCurrentGroupName() { diff --git a/lam/lib/modules/pykotaPrinter.inc b/lam/lib/modules/pykotaPrinter.inc index 64cd4e88..de0b5fd7 100644 --- a/lam/lib/modules/pykotaPrinter.inc +++ b/lam/lib/modules/pykotaPrinter.inc @@ -33,14 +33,14 @@ $Id$ * @package modules */ class pykotaPrinter extends baseModule { - + /** cache for existing printers (array(dn => array(cn => ..., description => ...))) */ private $printerCache = null; /** printer group cache */ private $groupCache = null; /** list of pass through options: label => value */ private $passThroughOptions; - + /** * Creates a new pykotaPrinter object. * @@ -57,7 +57,7 @@ class pykotaPrinter extends baseModule { /** * Returns true if this module can manage accounts of the current type, otherwise false. - * + * * @return boolean true if module fits */ public function can_manage() { @@ -68,7 +68,7 @@ class pykotaPrinter extends baseModule { * Returns meta data that is interpreted by parent class * * @return array array with meta data - * + * * @see baseModule::get_metaData() */ function get_metaData() { @@ -222,7 +222,7 @@ class pykotaPrinter extends baseModule { /** * Returns the HTML meta data for the main account page. - * + * * @return htmlElement HTML meta data */ function display_html_attributes() { @@ -376,10 +376,10 @@ class pykotaPrinter extends baseModule { } return $errors; } - + /** * This function will create the meta HTML code to show a page to add members. - * + * * @return htmlElement HTML meta data */ function display_html_members() { @@ -432,7 +432,7 @@ class pykotaPrinter extends baseModule { $return->addElement($buttonTable); return $return; } - + /** * Processes user input of the members page. * It checks if all input values are correct and updates the associated LDAP attributes. @@ -574,12 +574,10 @@ class pykotaPrinter extends baseModule { } return $messages; } - + /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $return = array(); @@ -625,10 +623,10 @@ class pykotaPrinter extends baseModule { } return $return; } - + /** * Returns if the given cn already exists. - * + * * @param String $cn cn attribute value * @return boolean cn exists */ @@ -662,10 +660,10 @@ class pykotaPrinter extends baseModule { } } } - + /** * Returns the printer group memberships. - * + * * @return array DNs of parent groups */ private function getPrinterGroups() { @@ -679,7 +677,7 @@ class pykotaPrinter extends baseModule { } return $this->groupCache; } - + } diff --git a/lam/lib/modules/pykotaUser.inc b/lam/lib/modules/pykotaUser.inc index 65f12060..5741feb8 100644 --- a/lam/lib/modules/pykotaUser.inc +++ b/lam/lib/modules/pykotaUser.inc @@ -884,10 +884,8 @@ class pykotaUser extends baseModule { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $return = array(); diff --git a/lam/lib/modules/quota.inc b/lam/lib/modules/quota.inc index e4ab6242..f44816c9 100644 --- a/lam/lib/modules/quota.inc +++ b/lam/lib/modules/quota.inc @@ -611,10 +611,8 @@ class quota extends baseModule { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $this->initQuotas(); diff --git a/lam/lib/modules/range.inc b/lam/lib/modules/range.inc index a0a8ea3f..525f5717 100644 --- a/lam/lib/modules/range.inc +++ b/lam/lib/modules/range.inc @@ -764,10 +764,8 @@ class range extends baseModule { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $return = array(); diff --git a/lam/lib/modules/sambaDomain.inc b/lam/lib/modules/sambaDomain.inc index 83368624..e471802e 100644 --- a/lam/lib/modules/sambaDomain.inc +++ b/lam/lib/modules/sambaDomain.inc @@ -36,7 +36,7 @@ class sambaDomain extends baseModule { /** * Returns true if this module can manage accounts of the current type, otherwise false. - * + * * @return boolean true if module fits */ public function can_manage() { @@ -47,7 +47,7 @@ class sambaDomain extends baseModule { * Returns meta data that is interpreted by parent class * * @return array array with meta data - * + * * @see baseModule::get_metaData() */ function get_metaData() { @@ -227,7 +227,7 @@ class sambaDomain extends baseModule { /** * Returns the HTML meta data for the main account page. - * + * * @return htmlElement HTML meta data */ function display_html_attributes() { @@ -590,10 +590,8 @@ class sambaDomain extends baseModule { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $return = array(); @@ -610,7 +608,7 @@ class sambaDomain extends baseModule { $this->addSimplePDFField($return, 'maxPwdAge', _('Maximum password age'), 'sambaMaxPwdAge'); $this->addSimplePDFField($return, 'lockoutDuration', _('Lockout duration'), 'sambaLockoutDuration'); $this->addSimplePDFField($return, 'lockoutObservationWindow', _('Reset time after lockout'), 'sambaLockoutObservationWindow'); - + if (isset($this->attributes['sambaLogonToChgPwd'])) { $logonToChgPwd = _('Off'); if ($this->attributes['sambaPwdHistoryLength'][0] == 2) $logonToChgPwd = _('On'); diff --git a/lam/lib/modules/sambaGroupMapping.inc b/lam/lib/modules/sambaGroupMapping.inc index c8bc841c..ccb33545 100644 --- a/lam/lib/modules/sambaGroupMapping.inc +++ b/lam/lib/modules/sambaGroupMapping.inc @@ -529,10 +529,8 @@ class sambaGroupMapping extends baseModule { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $return = array(); diff --git a/lam/lib/modules/sambaSamAccount.inc b/lam/lib/modules/sambaSamAccount.inc index 4be35ce6..1ee6f3d4 100644 --- a/lam/lib/modules/sambaSamAccount.inc +++ b/lam/lib/modules/sambaSamAccount.inc @@ -1904,10 +1904,8 @@ class sambaSamAccount extends baseModule implements passwordService { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $return = array(); diff --git a/lam/lib/modules/shadowAccount.inc b/lam/lib/modules/shadowAccount.inc index e515c0ea..6d3fe0c3 100644 --- a/lam/lib/modules/shadowAccount.inc +++ b/lam/lib/modules/shadowAccount.inc @@ -547,10 +547,8 @@ class shadowAccount extends baseModule implements passwordService { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ function get_pdfEntries($pdfKeys) { $timeZone = getTimeZone(); diff --git a/lam/lib/modules/systemQuotas.inc b/lam/lib/modules/systemQuotas.inc index eb33c57f..bfa06cd7 100644 --- a/lam/lib/modules/systemQuotas.inc +++ b/lam/lib/modules/systemQuotas.inc @@ -376,10 +376,8 @@ class systemQuotas extends baseModule { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ public function get_pdfEntries($pdfKeys) { $return = array(); diff --git a/lam/lib/modules/windowsGroup.inc b/lam/lib/modules/windowsGroup.inc index 34861e96..2e7f14cb 100644 --- a/lam/lib/modules/windowsGroup.inc +++ b/lam/lib/modules/windowsGroup.inc @@ -904,10 +904,8 @@ class windowsGroup extends baseModule { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ public function get_pdfEntries($pdfKeys) { $return = array(); diff --git a/lam/lib/modules/windowsHost.inc b/lam/lib/modules/windowsHost.inc index 3586a3cc..4aa7eb0d 100644 --- a/lam/lib/modules/windowsHost.inc +++ b/lam/lib/modules/windowsHost.inc @@ -33,10 +33,10 @@ $Id$ * @package modules */ class windowsHost extends baseModule { - + /** * Returns true if this module can manage accounts of the current type, otherwise false. - * + * * @return boolean true if module fits */ public function can_manage() { @@ -47,7 +47,7 @@ class windowsHost extends baseModule { * Returns meta data that is interpreted by parent class * * @return array array with meta data - * + * * @see baseModule::get_metaData() */ public function get_metaData() { @@ -134,7 +134,7 @@ class windowsHost extends baseModule { /** * Returns the HTML meta data for the main account page. - * + * * @return htmlElement HTML meta data */ public function display_html_attributes() { @@ -188,10 +188,10 @@ class windowsHost extends baseModule { } return $return; } - + /** * This function will create the meta HTML code to show a page to change the member attribute. - * + * * @return htmlElement HTML meta data */ function display_html_managedBy() { @@ -227,7 +227,7 @@ class windowsHost extends baseModule { $return->addElement($buttonTable); return $return; } - + /** * Processes user input of the members page. * It checks if all input values are correct and updates the associated LDAP attributes. @@ -279,12 +279,10 @@ class windowsHost extends baseModule { } return $errors; } - + /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ public function get_pdfEntries($pdfKeys) { $return = array(); diff --git a/lam/lib/modules/windowsUser.inc b/lam/lib/modules/windowsUser.inc index 7a663a24..061ea581 100644 --- a/lam/lib/modules/windowsUser.inc +++ b/lam/lib/modules/windowsUser.inc @@ -2415,10 +2415,8 @@ class windowsUser extends baseModule implements passwordService { } /** - * Returns a list of possible PDF entries for this account. - * - * @param array $pdfKeys list of PDF keys that are included in document - * @return list of PDF entries (array( => )) + * {@inheritDoc} + * @see baseModule::get_pdfEntries() */ public function get_pdfEntries($pdfKeys) { $return = array(); From fc514c461f5b94d3e5eb89dc674b242051039723 Mon Sep 17 00:00:00 2001 From: Roland Gruber Date: Sun, 19 Feb 2017 09:16:06 +0100 Subject: [PATCH 6/7] developer update --- lam/docs/devel/upgrade.htm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lam/docs/devel/upgrade.htm b/lam/docs/devel/upgrade.htm index 199d5603..822a3da4 100644 --- a/lam/docs/devel/upgrade.htm +++ b/lam/docs/devel/upgrade.htm @@ -19,6 +19,7 @@ + @@ -49,7 +50,14 @@ This is a list of API changes for all LAM releases.
+

5.6 -> 5.7

+
    +
  • module interface: get_pdfEntries() must return an array key => +PDFEntry (no action required if you did not build the XML yourself)
  • +
+

5.5 -> 5.6

+
  • Functions in lib/types.inc got namespace LAM/TYPES (e.g. getTypeAlias()).
  • From 8ab3996483b22fc548e6907728cb0c887d99628f Mon Sep 17 00:00:00 2001 From: Roland Gruber Date: Sun, 19 Feb 2017 09:19:37 +0100 Subject: [PATCH 7/7] dependencies --- lam/HISTORY | 1 + 1 file changed, 1 insertion(+) diff --git a/lam/HISTORY b/lam/HISTORY index 50116e1e..022ccb86 100644 --- a/lam/HISTORY +++ b/lam/HISTORY @@ -1,5 +1,6 @@ March 2017 - 2-factor authentication for admin login and self service with privacyIDEA + - Updated Debian dependencies 18.12.2016 5.6