performance fixes

This commit is contained in:
Roland Gruber 2014-09-21 18:09:44 +00:00
parent 4d3b81881a
commit 3d8c0e7dcc
3 changed files with 40 additions and 27 deletions

View File

@ -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;
}
}
}
}

View File

@ -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;
}
}

View File

@ -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