diff --git a/lam/lib/modules/inetOrgPerson.inc b/lam/lib/modules/inetOrgPerson.inc index 74d5f3e9..b515eea9 100644 --- a/lam/lib/modules/inetOrgPerson.inc +++ b/lam/lib/modules/inetOrgPerson.inc @@ -1471,7 +1471,7 @@ class inetOrgPerson extends baseModule implements passwordService { $this->addSimpleReadOnlyField($fieldContainer, 'title', _('Job title')); } else { - $this->addMultiValueInputTextField($fieldContainer, 'title', _('Job title'), false, null, false, null, null, $equalWidthElements); + $this->addMultiValueInputTextField($fieldContainer, 'title', _('Job title'), false, null, false, array_slice($this->titleCache, 0, 300), null, $equalWidthElements); } } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideCarLicense')) { @@ -1497,7 +1497,7 @@ class inetOrgPerson extends baseModule implements passwordService { $this->addSimpleReadOnlyField($fieldContainer, 'employeeType', _('Employee type')); } else { - $this->addSimpleInputTextField($fieldContainer, 'employeeType', _('Employee type'), false, null, false, $this->employeeTypeCache); + $this->addSimpleInputTextField($fieldContainer, 'employeeType', _('Employee type'), false, null, false, array_slice($this->employeeTypeCache, 0, 300)); $equalWidthElements[] = 'employeeType'; } } @@ -1506,7 +1506,7 @@ class inetOrgPerson extends baseModule implements passwordService { $this->addSimpleReadOnlyField($fieldContainer, 'businessCategory', _('Business category')); } else { - $this->addMultiValueInputTextField($fieldContainer, 'businessCategory', _('Business category'), false, null, false, $this->businessCategoryCache, null, $equalWidthElements); + $this->addMultiValueInputTextField($fieldContainer, 'businessCategory', _('Business category'), false, null, false, array_slice($this->businessCategoryCache, 0, 300), null, $equalWidthElements); } } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideDepartments')) { @@ -1514,7 +1514,7 @@ class inetOrgPerson extends baseModule implements passwordService { $this->addSimpleReadOnlyField($fieldContainer, 'departmentNumber', _('Department')); } else { - $this->addMultiValueInputTextField($fieldContainer, 'departmentNumber', _('Department'), false, null, false, $this->departmentCache, null, $equalWidthElements); + $this->addMultiValueInputTextField($fieldContainer, 'departmentNumber', _('Department'), false, null, false, array_slice($this->departmentCache, 0, 300), null, $equalWidthElements); } } // organisational unit @@ -1523,7 +1523,7 @@ class inetOrgPerson extends baseModule implements passwordService { $this->addSimpleReadOnlyField($fieldContainer, 'ou', _('Organisational unit')); } else { - $this->addMultiValueInputTextField($fieldContainer, 'ou', _('Organisational unit'), false, null, false, $this->ouCache, null, $equalWidthElements); + $this->addMultiValueInputTextField($fieldContainer, 'ou', _('Organisational unit'), false, null, false, array_slice($this->ouCache, 0, 300), null, $equalWidthElements); } } // organisation @@ -1532,7 +1532,7 @@ class inetOrgPerson extends baseModule implements passwordService { $this->addSimpleReadOnlyField($fieldContainer, 'o', _('Organisation')); } else { - $this->addMultiValueInputTextField($fieldContainer, 'o', _('Organisation'), false, null, false, $this->oCache, null, $equalWidthElements); + $this->addMultiValueInputTextField($fieldContainer, 'o', _('Organisation'), false, null, false, array_slice($this->oCache, 0, 300), null, $equalWidthElements); } } // user certificates @@ -2438,10 +2438,11 @@ class inetOrgPerson extends baseModule implements passwordService { } } $temp['counter']++; - if ($temp['counter'] < (sizeof($data) - 1)) { + $dataSize = sizeof($data); + if ($temp['counter'] < ($dataSize - 1)) { return array ( 'status' => 'inProgress', - 'progress' => ($temp['counter'] * 100) / sizeof($data), + 'progress' => ($temp['counter'] * 100) / $dataSize, 'errors' => $errors ); } @@ -3471,22 +3472,34 @@ class inetOrgPerson extends baseModule implements passwordService { $result = searchLDAPByFilter('(objectClass=inetOrgPerson)', $attrs, array($this->get_scope())); foreach ($result as $attributes) { if (isset($attributes['departmentnumber'])) { - $departments = array_merge($departments, $attributes['departmentnumber']); + foreach ($attributes['departmentnumber'] as $val) { + $departments[] = $val; + } } if (isset($attributes['ou'])) { - $ous = array_merge($ous, $attributes['ou']); + foreach ($attributes['ou'] as $val) { + $ous[] = $val; + } } if (isset($attributes['o'])) { - $os = array_merge($os, $attributes['o']); + foreach ($attributes['o'] as $val) { + $os[] = $val; + } } if (isset($attributes['title'])) { - $titles = array_merge($titles, $attributes['title']); + foreach ($attributes['title'] as $val) { + $titles[] = $val; + } } if (isset($attributes['employeetype'])) { - $employeeTypes = array_merge($employeeTypes, $attributes['employeetype']); + foreach ($attributes['employeetype'] as $val) { + $employeeTypes[] = $val; + } } if (isset($attributes['businesscategory'])) { - $businessCategories = array_merge($businessCategories, $attributes['businesscategory']); + foreach ($attributes['businesscategory'] as $val) { + $businessCategories[] = $val; + } } } } diff --git a/lam/lib/modules/posixAccount.inc b/lam/lib/modules/posixAccount.inc index 1a07f9f1..37750067 100644 --- a/lam/lib/modules/posixAccount.inc +++ b/lam/lib/modules/posixAccount.inc @@ -2269,30 +2269,30 @@ class posixAccount extends baseModule implements passwordService { $gonMap[$attr['cn'][0]] = $dn; } } - for ($i = 0; $i < sizeof($data); $i++) { + foreach ($data as $i => $dataRow) { if (in_array($i, $failed)) continue; // ignore failed accounts - if ($data[$i][$col] != "") { - $groups = explode(",", $data[$i][$col]); + if ($dataRow[$col] != "") { + $groups = explode(",", $dataRow[$col]); if (isset($this->moduleSettings['posixAccount_primaryGroupAsSecondary'][0]) && ($this->moduleSettings['posixAccount_primaryGroupAsSecondary'][0] == 'true')) { - if (get_preg($data[$i][$ids['posixAccount_group']], 'digit')) { - if (!in_array($groupMap[$data[$i][$ids['posixAccount_group']]], $groups)) { - $groups[] = $groupMap[$data[$i][$ids['posixAccount_group']]]; + if (get_preg($dataRow[$ids['posixAccount_group']], 'digit')) { + if (!in_array($groupMap[$dataRow[$ids['posixAccount_group']]], $groups)) { + $groups[] = $groupMap[$dataRow[$ids['posixAccount_group']]]; } } else { - if (!in_array($groupMap[$data[$i][$ids['posixAccount_group']]], $groups)) { - $groups[] = $data[$i][$ids['posixAccount_group']]; + if (!in_array($groupMap[$dataRow[$ids['posixAccount_group']]], $groups)) { + $groups[] = $dataRow[$ids['posixAccount_group']]; } } } for ($g = 0; $g < sizeof($groups); $g++) { if (!in_array($groups[$g], $temp['groups'])) $temp['groups'][] = $groups[$g]; - $temp['members'][$groups[$g]][] = $data[$i][$ids['posixAccount_userName']]; + $temp['members'][$groups[$g]][] = $dataRow[$ids['posixAccount_userName']]; } } - if (isset($ids['posixAccount_gon']) && ($data[$i][$ids['posixAccount_gon']] != "")) { - $gons = explode(",", $data[$i][$ids['posixAccount_gon']]); + if (isset($ids['posixAccount_gon']) && ($dataRow[$ids['posixAccount_gon']] != "")) { + $gons = explode(",", $dataRow[$ids['posixAccount_gon']]); $memberAttr = 'member'; for ($g = 0; $g < sizeof($gons); $g++) { if (in_array('groupOfUniqueNames', $gonList[$gonMap[$gons[$g]]]['objectclass'])) { @@ -2301,7 +2301,7 @@ class posixAccount extends baseModule implements passwordService { $temp['dn_gon'][$gonMap[$gons[$g]]][$memberAttr][] = $accounts[$i]['dn']; } } - if ($data[$i][$col_home] != "") { + if ($dataRow[$col_home] != "") { $temp['createHomes'][] = $i; } } diff --git a/lam/templates/massBuildAccounts.php b/lam/templates/massBuildAccounts.php index 328ac0fb..02da219d 100644 --- a/lam/templates/massBuildAccounts.php +++ b/lam/templates/massBuildAccounts.php @@ -204,7 +204,7 @@ if ($_FILES['inputfile'] && ($_FILES['inputfile']['size'] > 0)) { $account_dn = $data[$i][$ids['dn_rdn']] . "=" . $account[$data[$i][$ids['dn_rdn']]] . ","; if ($data[$i][$ids['dn_suffix']] == "") $account_dn = $account_dn . $suffix; else $account_dn = $account_dn . $data[$i][$ids['dn_suffix']]; - $account['dn'] = $account_dn; + $accounts[$i]['dn'] = $account_dn; } } // print errors if DN could not be built