From 1f8d1445e8f68cb8c8d1030b897241d13c4e92a8 Mon Sep 17 00:00:00 2001 From: Roland Gruber Date: Sun, 16 Aug 2015 08:47:48 +0000 Subject: [PATCH] use extended upload function --- lam/lib/modules/kolabUser.inc | 46 ++------------------- lam/lib/modules/ldapPublicKey.inc | 8 +--- lam/lib/modules/nisMailAlias.inc | 21 +++++----- lam/lib/modules/nisnetgroup.inc | 5 +-- lam/lib/modules/posixGroup.inc | 69 ++++++++++++++----------------- lam/lib/modules/puppetClient.inc | 33 ++------------- 6 files changed, 49 insertions(+), 133 deletions(-) diff --git a/lam/lib/modules/kolabUser.inc b/lam/lib/modules/kolabUser.inc index 9e5c4ec0..e5b73255 100644 --- a/lam/lib/modules/kolabUser.inc +++ b/lam/lib/modules/kolabUser.inc @@ -670,21 +670,7 @@ class kolabUser extends baseModule { } } // add mail aliases - if ($rawAccounts[$i][$ids['kolabUser_aliases']] != "") { - $aliases = explode(',', $rawAccounts[$i][$ids['kolabUser_aliases']]); - // check format - for ($a = 0; $a < sizeof($aliases); $a++) { - if (get_preg($aliases[$a], 'email')) { - $partialAccounts[$i]['alias'][] = $aliases[$a]; - } - // invalid format - else { - $errMsg = $this->messages['alias'][1]; - array_push($errMsg, array($i)); - $messages[] = $errMsg; - } - } - } + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'kolabUser_aliases', 'alias', 'email', $this->messages['alias'][1], $messages, '/,[ ]*/'); // add delegates if ($rawAccounts[$i][$ids['kolabUser_delegates']] != "") { $newDelegates = explode(',', $rawAccounts[$i][$ids['kolabUser_delegates']]); @@ -702,35 +688,9 @@ class kolabUser extends baseModule { } } // allowed recipients - if (!empty($rawAccounts[$i][$ids['kolabUser_kolabAllowSMTPRecipient']])) { - $mails = preg_split('/;[ ]*/', $rawAccounts[$i][$ids['kolabUser_kolabAllowSMTPRecipient']]); - for ($m = 0; $m < sizeof($mails); $m++) { - if (get_preg($mails[$m], 'kolabEmailPrefix')) { - $partialAccounts[$i]['kolabAllowSMTPRecipient'][] = $mails[$m]; - } - else { - $errMsg = $this->messages['kolabAllowSMTPRecipient'][1]; - array_push($errMsg, array($i)); - $messages[] = $errMsg; - break; - } - } - } + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'kolabUser_kolabAllowSMTPRecipient', 'kolabAllowSMTPRecipient', 'kolabEmailPrefix', $this->messages['kolabAllowSMTPRecipient'][1], $messages, '/;[ ]*/'); // allowed senders - if (!empty($rawAccounts[$i][$ids['kolabUser_kolabAllowSMTPSender']])) { - $mails = preg_split('/;[ ]*/', $rawAccounts[$i][$ids['kolabUser_kolabAllowSMTPSender']]); - for ($m = 0; $m < sizeof($mails); $m++) { - if (get_preg($mails[$m], 'kolabEmailPrefix')) { - $partialAccounts[$i]['kolabAllowSMTPSender'][] = $mails[$m]; - } - else { - $errMsg = $this->messages['kolabAllowSMTPSender'][1]; - array_push($errMsg, array($i)); - $messages[] = $errMsg; - break; - } - } - } + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'kolabUser_kolabAllowSMTPSender', 'kolabAllowSMTPSender', 'kolabEmailPrefix', $this->messages['kolabAllowSMTPSender'][1], $messages, '/;[ ]*/'); } return $messages; } diff --git a/lam/lib/modules/ldapPublicKey.inc b/lam/lib/modules/ldapPublicKey.inc index 769c08ba..1ac6a5ec 100644 --- a/lam/lib/modules/ldapPublicKey.inc +++ b/lam/lib/modules/ldapPublicKey.inc @@ -190,13 +190,7 @@ class ldapPublicKey extends baseModule { // add object class if (!in_array("ldapPublicKey", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "ldapPublicKey"; // add keys - if ($rawAccounts[$i][$ids['ldapPublicKey_sshPublicKey']] != "") { - $keys = explode(',', $rawAccounts[$i][$ids['ldapPublicKey_sshPublicKey']]); - // check format - for ($m = 0; $m < sizeof($keys); $m++) { - $partialAccounts[$i]['sshPublicKey'][] = $keys[$m]; - } - } + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'ldapPublicKey_sshPublicKey', 'sshPublicKey', null, null, $messages, '/,[ ]*/'); } return $messages; } diff --git a/lam/lib/modules/nisMailAlias.inc b/lam/lib/modules/nisMailAlias.inc index 1b9be906..48bc3d7c 100644 --- a/lam/lib/modules/nisMailAlias.inc +++ b/lam/lib/modules/nisMailAlias.inc @@ -40,10 +40,10 @@ class nisMailAlias extends baseModule { private $cachedUserList = null; /** display limit */ const DISPLAY_LIMIT = 50; - + /** * Returns true if this module can manage accounts of the current type, otherwise false. - * + * * @return boolean true if module fits */ public function can_manage() { @@ -54,7 +54,7 @@ class nisMailAlias extends baseModule { * Returns meta data that is interpreted by parent class * * @return array array with meta data - * + * * @see baseModule::get_metaData() */ function get_metaData() { @@ -150,7 +150,7 @@ class nisMailAlias extends baseModule { /** * Returns the HTML meta data for the main account page. - * + * * @return htmlElement HTML meta data */ function display_html_attributes() { @@ -299,7 +299,7 @@ class nisMailAlias extends baseModule { function display_html_selectMail() { return $this->display_html_select(true); } - + /** * Processes user input of the host/user selection page. * It checks if all input values are correct and updates the associated LDAP attributes. @@ -309,7 +309,7 @@ class nisMailAlias extends baseModule { function process_selectMail() { return $this->process_select(); } - + /** * Displays the user selection. * @@ -318,7 +318,7 @@ class nisMailAlias extends baseModule { function display_html_selectUser() { return $this->display_html_select(false); } - + /** * Processes user input of the host/user selection page. * It checks if all input values are correct and updates the associated LDAP attributes. @@ -328,7 +328,7 @@ class nisMailAlias extends baseModule { function process_selectUser() { return $this->process_select(); } - + /** * Displays the user/mail selection. * @@ -388,7 +388,7 @@ class nisMailAlias extends baseModule { $return->addElement(new htmlHiddenInput('position', $position)); return $return; } - + /** * Processes user input of the host/user selection page. * It checks if all input values are correct and updates the associated LDAP attributes. @@ -411,7 +411,7 @@ class nisMailAlias extends baseModule { } return array(); } - + /** * Controls if the module button the account page is visible and activated. * @@ -443,7 +443,6 @@ class nisMailAlias extends baseModule { // add object class if (!in_array("nisMailAlias", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "nisMailAlias"; // add alias name - // check format $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'nisMailAlias_alias', 'cn', 'nis_alias', $this->messages['alias'][1], $messages); // add recipients diff --git a/lam/lib/modules/nisnetgroup.inc b/lam/lib/modules/nisnetgroup.inc index 160c424f..f14ef973 100644 --- a/lam/lib/modules/nisnetgroup.inc +++ b/lam/lib/modules/nisnetgroup.inc @@ -549,10 +549,7 @@ class nisnetgroup extends baseModule { } } // members - if ($rawAccounts[$i][$ids['nisnetgroup_members']] != "") { - $members = explode(';', $rawAccounts[$i][$ids['nisnetgroup_members']]); - $partialAccounts[$i]['nisNetgroupTriple'] = $members; - } + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'nisnetgroup_members', 'nisNetgroupTriple', null, null, $messages, '/;[ ]*/'); } return $messages; } diff --git a/lam/lib/modules/posixGroup.inc b/lam/lib/modules/posixGroup.inc index 272729bd..039c4981 100644 --- a/lam/lib/modules/posixGroup.inc +++ b/lam/lib/modules/posixGroup.inc @@ -53,7 +53,7 @@ class posixGroup extends baseModule implements passwordService { private $cachedUserToGIDList = null; /** cache for existing groups */ private $cachedGroupNameList = null; - + /** * In this function the LDAP account is built up. * @@ -70,14 +70,7 @@ class posixGroup extends baseModule implements passwordService { if (!in_array("posixGroup", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "posixGroup"; if ($this->manageCnAttribute) { // group name - if (get_preg($rawAccounts[$i][$ids['posixGroup_cn']], 'groupname')) { - $partialAccounts[$i]['cn'] = $rawAccounts[$i][$ids['posixGroup_cn']]; - } - else { - $errMsg = $this->messages['cn'][3]; - array_push($errMsg, array($i)); - $error_messages[] = $errMsg; - } + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'posixGroup_cn', 'cn', 'groupname', $this->messages['cn'][3], $error_messages); } // GID if ($rawAccounts[$i][$ids['posixGroup_gid']] == "") { @@ -164,9 +157,9 @@ class posixGroup extends baseModule implements passwordService { /** * Returns the HTML meta data for the main account page. - * + * * @return array HTML meta data - * + * * @see baseModule::get_metaData() */ function display_html_attributes() { @@ -300,12 +293,12 @@ class posixGroup extends baseModule implements passwordService { } } $return->addElement(new htmlSubTitle(_("Group members")), true); - + $return->addElement(new htmlOutputText(_("Selected users"))); $return->addElement(new htmlOutputText('')); $return->addElement(new htmlOutputText(_("Available users"))); $return->addNewLine(); - + $remUsers = array(); if (isset($this->attributes['memberUid'])) { $remUsers = $this->attributes['memberUid']; @@ -345,7 +338,7 @@ class posixGroup extends baseModule implements passwordService { $filterContainer->addElement(new htmlHelpLink('filter')); $filterContainer->addElement(new htmlHiddenInput('filterValue', htmlspecialchars($filter))); $return->addElement($filterContainer, true); - + // sync from group of names $gon = $this->getAccountContainer()->getAccountModule('groupOfNames'); if ($gon == null) { @@ -358,18 +351,18 @@ class posixGroup extends baseModule implements passwordService { $syncButton->setIconClass('refreshButton'); $return->addElement($syncButton, true); } - + // back button $return->addElement(new htmlSpacer(null, '20px'), true); $return->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'back', _('Back')), true); $return->addElement(new htmlEqualHeight(array('removeusers', 'addusers'))); - + return $return; } /** * Returns true if this module can manage accounts of the current type, otherwise false. - * + * * @return boolean true if module fits */ public function can_manage() { @@ -456,7 +449,7 @@ class posixGroup extends baseModule implements passwordService { ); } if ($this->manageCnAttribute) { - array_unshift($return['upload_columns'], + array_unshift($return['upload_columns'], array( 'name' => 'posixGroup_cn', 'description' => _('Group name'), @@ -638,7 +631,7 @@ class posixGroup extends baseModule implements passwordService { /** * This functin will be called when the module will be loaded - * + * * @param String $base the name of the {@link accountContainer} object ($_SESSION[$base]) */ function init($base) { @@ -886,10 +879,10 @@ class posixGroup extends baseModule implements passwordService { } return $return; } - + /** * Syncs with group of names members. - * + * * @return array list of status messages */ protected function syncGon() { @@ -981,10 +974,10 @@ class posixGroup extends baseModule implements passwordService { } } } - + /** * Checks input values of module settings. - * + * * Calling this method does not require the existence of an enclosing {@link accountContainer}.
*
* If the input data is invalid the return value is an array that contains subarrays to build StatusMessages ('message type', 'message head', 'message text'). @@ -993,7 +986,7 @@ class posixGroup extends baseModule implements passwordService { * @param array $scopes list of account types which are used * @param array $options hash array (option name => value) that contains the input. The option values are all arrays containing one or more elements. * @return array list of error messages - * + * * @see baseModule::get_metaData() */ public function check_configOptions($scopes, &$options) { @@ -1096,10 +1089,10 @@ class posixGroup extends baseModule implements passwordService { } return $ret; } - + /** * Gets the free GID numbers from an Samba pool entry in LDAP. - * + * * @param integer $count number of needed free GIDs. * @param array $errors list of error messages where errors can be added * @return mixed null if no GIDs are free else an array of free GIDs @@ -1127,7 +1120,7 @@ class posixGroup extends baseModule implements passwordService { /** * Gets the free GID numbers from an Windows domain info entry in LDAP. - * + * * @param integer $count number of needed free GIDs. * @param array $errors list of error messages where errors can be added * @return mixed null if no GIDs are free else an array of free GIDs @@ -1165,13 +1158,13 @@ class posixGroup 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. @@ -1190,7 +1183,7 @@ class posixGroup extends baseModule implements passwordService { $this->attributes[$this->passwordAttrName][0] = pwd_hash($password, true, $this->moduleSettings['posixAccount_pwdHash'][0]); return array(); } - + /** * Returns a list of existing GID numbers. * @@ -1214,7 +1207,7 @@ class posixGroup extends baseModule implements passwordService { sort($this->cachedGIDList, SORT_NUMERIC); return $this->cachedGIDList; } - + /** * Returns a list of existing users and their GID numbers and cn. * @@ -1249,20 +1242,20 @@ class posixGroup extends baseModule implements passwordService { logNewMessage(LOG_DEBUG, print_r($result, true)); return $this->cachedUserToGIDList; } - + /** * Checks if the given group name already exists in LDAP. - * + * * @param String $groupName group name * @return boolean true if already exists */ private function groupNameExists($groupName) { return in_array($groupName, $this->getGroupNames()); } - + /** * Returns a list of all group names in LDAP. - * + * * @return array group names */ private function getGroupNames() { @@ -1282,10 +1275,10 @@ class posixGroup extends baseModule implements passwordService { } return $this->cachedGroupNameList; } - + /** * Returns if the Windows module is active. - * + * * @return boolean is Windows */ private function isWindows() { @@ -1300,7 +1293,7 @@ class posixGroup extends baseModule implements passwordService { } return false; } - + } ?> diff --git a/lam/lib/modules/puppetClient.inc b/lam/lib/modules/puppetClient.inc index 6af91040..e2203347 100644 --- a/lam/lib/modules/puppetClient.inc +++ b/lam/lib/modules/puppetClient.inc @@ -381,38 +381,11 @@ class puppetClient extends baseModule { } } // environment - if ($rawAccounts[$i][$ids['puppetClient_environment']] != "") { - if (get_preg($rawAccounts[$i][$ids['puppetClient_environment']], 'ascii')) { - $partialAccounts[$i]['environment'] = explode(';', $rawAccounts[$i][$ids['puppetClient_environment']]); - } - else { - $errMsg = $this->messages['environment'][1]; - array_push($errMsg, array($i)); - $messages[] = $errMsg; - } - } + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'puppetClient_environment', 'environment', 'ascii', $this->messages['environment'][1], $messages, '/;[ ]*/'); // classes - if ($rawAccounts[$i][$ids['puppetClient_puppetclass']] != "") { - if (get_preg($rawAccounts[$i][$ids['puppetClient_puppetclass']], 'ascii')) { - $partialAccounts[$i]['puppetclass'] = explode(';', $rawAccounts[$i][$ids['puppetClient_puppetclass']]); - } - else { - $errMsg = $this->messages['puppetclass'][1]; - array_push($errMsg, array($i)); - $messages[] = $errMsg; - } - } + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'puppetClient_puppetclass', 'puppetclass', 'ascii', $this->messages['puppetclass'][1], $messages, '/;[ ]*/'); // variables - if ($rawAccounts[$i][$ids['puppetClient_puppetvar']] != "") { - if (get_preg($rawAccounts[$i][$ids['puppetClient_puppetvar']], 'ascii')) { - $partialAccounts[$i]['puppetvar'] = explode(';', $rawAccounts[$i][$ids['puppetClient_puppetvar']]); - } - else { - $errMsg = $this->messages['puppetvar'][1]; - array_push($errMsg, array($i)); - $messages[] = $errMsg; - } - } + $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'puppetClient_puppetvar', 'puppetvar', 'ascii', $this->messages['puppetvar'][1], $messages, '/;[ ]*/'); } return $messages; }