diff --git a/lam/lib/modules/asteriskExtension.inc b/lam/lib/modules/asteriskExtension.inc index c874bf83..77352cf3 100644 --- a/lam/lib/modules/asteriskExtension.inc +++ b/lam/lib/modules/asteriskExtension.inc @@ -4,6 +4,7 @@ $Id$ This code is part of LDAP Account Manager (http://www.sourceforge.net/projects/lam) Copyright (C) 2009 Pozdnyak Pavel + 2009 Roland Gruber This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -26,6 +27,7 @@ $Id$ * Description of asteriskExtension * * @author Pozdnyak Pavel + * @author Roland Gruber */ class asteriskExtension extends baseModule { @@ -41,7 +43,7 @@ class asteriskExtension extends baseModule { $return["is_base"] = true; // RDN attribute $return["RDN"] = array("cn" => "normal"); - + // LDAP filter $return["ldap_filter"] = array('or' => "(objectClass=AsteriskExtension)"); // alias name $return["alias"] = _("Asterisk extension"); @@ -107,7 +109,61 @@ class asteriskExtension extends baseModule { 'AsteriskExtension_AstPriority' => 'AstPriority', 'AsteriskExtension_AstApplication' => 'AstApplication', ); - + // available PDF fields + $return['PDF_fields'] = array( + 'AstApplicationData', 'AstContext', 'AstExtension', + 'AstPriority', 'AstApplication', 'member', 'cn' + ); + // upload fields + $return['upload_columns'] = array( + array( + 'name' => 'asteriskExtension_AstExtension', + 'description' => _('Asterisk extension'), + 'help' => 'AstExtension', + 'example' => '500', + 'required' => true + ), + array( + 'name' => 'asteriskExtension_AstPriority', + 'description' => _('Asterisk priority'), + 'help' => 'AstPriority', + 'example' => '3', + 'required' => true + ), + array( + 'name' => 'asteriskExtension_cn', + 'description' => _('Common name'), + 'help' => 'cn', + 'example' => _('500-1'), + 'required' => true + ), + array( + 'name' => 'asteriskExtension_AstApplication', + 'description' => _('Asterisk application'), + 'help' => 'AstApplication', + 'example' => 'Playback', + ), + array( + 'name' => 'asteriskExtension_AstApplicationData', + 'description' => _('Asterisk application data'), + 'help' => 'AstApplicationData', + 'example' => _('test-start'), + ), + array( + 'name' => 'asteriskExtension_AstContext', + 'description' => _('Account context'), + 'help' => 'AstContext', + 'example' => _('test'), + ), + array( + 'name' => 'asteriskExtension_member', + 'description' => _('Extension owners'), + 'help' => 'member', + 'example' => 'uid=user1,o=test;uid=user2,o=test', + 'required' => true + ), + ); + return $return; } @@ -134,6 +190,10 @@ class asteriskExtension extends baseModule { function display_html_attributes() { $return = array(); + $return[] = array( + array('kind' => 'text', 'text' => _("Common name") . '*'), + array('kind' => 'input', 'name' => 'cn', 'type' => 'text', 'size' => '30', 'maxlength' => '20', 'value' => $this->attributes['cn'][0]), + array('kind' => 'help', 'value' => 'cn')); $return[] = array( array('kind' => 'text', 'text' => _("Account context")), array('kind' => 'input', 'name' => 'AstContext', 'type' => 'text', 'size' => '30', 'maxlength' => '20', 'value' => $this->attributes['AstContext'][0]), @@ -154,10 +214,6 @@ class asteriskExtension extends baseModule { array('kind' => 'text', 'text' => _("Asterisk application data")), array('kind' => 'input', 'name' => 'AstApplicationData', 'type' => 'text', 'size' => '30', 'maxlength' => '20', 'value' => $this->attributes['AstApplicationData'][0]), array('kind' => 'help', 'value' => 'AstApplicationData')); - $return[] = array( - array('kind' => 'text', 'text' => _("Common name") . '*'), - array('kind' => 'input', 'name' => 'cn', 'type' => 'text', 'size' => '30', 'maxlength' => '20', 'value' => $this->attributes['cn'][0]), - array('kind' => 'help', 'value' => 'cn')); $return[] = array( array('kind' => 'text', 'text' => _("Extension owners") . '*'), @@ -318,68 +374,58 @@ class asteriskExtension extends baseModule { * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) * @return array list of error messages if any */ - function build_uploadExtensions($rawAccounts, $ids, &$partialAccounts) { + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts) { $messages = array(); for ($i = 0; $i < sizeof($rawAccounts); $i++) { - // add object class + // add object class if (!in_array("AsteriskExtension", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "AsteriskExtension"; - - if ($rawAccounts[$i][$ids['AstApplicationData']] != "") { - if(get_preg($rawAccounts[$i][$ids['AstApplicationData']], 'realname')) { - $partialAccounts[$i]['AstApplicationData'] = $rawAccounts[$i][$ids['AstApplicationData']]; - }else { - $message = $this->messages['AstApplicationData'][0]; - } + if (!in_array("groupOfNames", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "groupOfNames"; + // attributes + $partialAccounts[$i]['cn'] = $rawAccounts[$i][$ids['asteriskExtension_cn']]; + $partialAccounts[$i]['AstExtension'] = $rawAccounts[$i][$ids['asteriskExtension_AstExtension']]; + $partialAccounts[$i]['AstPriority'] = $rawAccounts[$i][$ids['asteriskExtension_AstPriority']]; + $partialAccounts[$i]['member'] = explode(';', $rawAccounts[$i][$ids['asteriskExtension_member']]); + if ($rawAccounts[$i][$ids['asteriskExtension_AstApplication']] != "") { + $partialAccounts[$i]['AstApplication'] = $rawAccounts[$i][$ids['asteriskExtension_AstApplication']]; } - if ($rawAccounts[$i][$ids['cn']] != "") { - if(get_preg($rawAccounts[$i][$ids['cn']], 'realname')) { - $partialAccounts[$i]['cn'] = $rawAccounts[$i][$ids['cn']]; - }else { - $message = $this->messages['cn'][0]; - } + if ($rawAccounts[$i][$ids['asteriskExtension_AstApplicationData']] != "") { + $partialAccounts[$i]['AstApplicationData'] = $rawAccounts[$i][$ids['asteriskExtension_AstApplicationData']]; } - if ($rawAccounts[$i][$ids['member']] != "") { - if(get_preg($rawAccounts[$i][$ids['member']], 'realname')) { - $partialAccounts[$i]['member'] = $rawAccounts[$i][$ids['member']]; - }else { - $message = $this->messages['member'][0]; - } + if ($rawAccounts[$i][$ids['asteriskExtension_AstContext']] != "") { + $partialAccounts[$i]['AstContext'] = $rawAccounts[$i][$ids['asteriskExtension_AstContext']]; } - if ($rawAccounts[$i][$ids['AstExtension']] != "") { - if(get_preg($rawAccounts[$i][$ids['AstExtension']], 'realname')) { - $partialAccounts[$i]['AstExtension'] = $rawAccounts[$i][$ids['AstExtension']]; - }else { - $message = $this->messages['AstExtension'][0]; - } - } - if ($rawAccounts[$i][$ids['AstPriority']] != "") { - if(get_preg($rawAccounts[$i][$ids['AstPriority']], 'realname')) { - $partialAccounts[$i]['AstPriority'] = $rawAccounts[$i][$ids['AstPriority']]; - }else { - $message = $this->messages['AstPriority'][0]; - } - } - if ($rawAccounts[$i][$ids['AstApplication']] != "") { - if(get_preg($rawAccounts[$i][$ids['AstApplication']], 'realname')) { - $partialAccounts[$i]['AstApplication'] = $rawAccounts[$i][$ids['AstApplication']]; - }else { - $message = $this->messages['AstApplication'][0]; - } - } - if ($rawAccounts[$i][$ids['AstContext']] != "") { - if(get_preg($rawAccounts[$i][$ids['AstContext']], 'realname')) { - $partialAccounts[$i]['AstContext'] = $rawAccounts[$i][$ids['AstContext']]; - }else { - $message = $this->messages['AstContext'][0]; - } - } - } + return $messages; } - // TODO add file upload - - // TODO add PDF support + /** + * Returns a list of PDF entries + */ + function get_pdfEntries() { + $return = array(); + if (isset($this->attributes['AstContext'])) { + $return[get_class($this) . '_AstContext'] = array('' . _('Account context') . '' . $this->attributes['AstContext'][0] . ''); + } + if (isset($this->attributes['AstApplicationData'])) { + $return[get_class($this) . '_AstApplicationData'] = array('' . _('Asterisk application data') . '' . $this->attributes['AstApplicationData'][0] . ''); + } + if (isset($this->attributes['AstApplication'])) { + $return[get_class($this) . '_AstApplication'] = array('' . _('Asterisk application') . '' . $this->attributes['AstApplication'][0] . ''); + } + if (isset($this->attributes['AstPriority'])) { + $return[get_class($this) . '_AstPriority'] = array('' . _('Asterisk priority') . '' . $this->attributes['AstPriority'][0] . ''); + } + if (isset($this->attributes['AstExtension'])) { + $return[get_class($this) . '_AstExtension'] = array('' . _('Asterisk extension') . '' . $this->attributes['AstExtension'][0] . ''); + } + if (isset($this->attributes['member'])) { + $return[get_class($this) . '_member'] = array('' . _('Extension owners') . '' . implode('; ', $this->attributes['member']) . ''); + } + if (isset($this->attributes['cn'])) { + $return[get_class($this) . '_cn'] = array('' . _('Common name') . '' . $this->attributes['cn'][0] . ''); + } + return $return; + } } ?>