diff --git a/lam/lib/modules.inc b/lam/lib/modules.inc index 2537b1a2..f7d0e0b2 100644 --- a/lam/lib/modules.inc +++ b/lam/lib/modules.inc @@ -1605,7 +1605,7 @@ class accountContainer { // find new attributes if (isset($attributes[$name]) && is_array($attributes[$name])) { foreach ($attributes[$name] as $j => $value) { - if (is_array($orig[$name])) { + if (isset($orig[$name]) && is_array($orig[$name])) { if (!in_array($value, $orig[$name])) if ($value != '') { $toadd[$name][] = $value; @@ -1615,7 +1615,7 @@ class accountContainer { } } // find unchanged attributes - if (is_array($orig[$name]) && is_array($attributes[$name])) { + if (isset($orig[$name]) && is_array($orig[$name]) && is_array($attributes[$name])) { foreach ($attributes[$name] as $j => $value) { if (($value != '') && in_array($value, $orig[$name])) { $notchanged[$name][] = $value; @@ -1913,9 +1913,15 @@ class accountContainer { // create complete new dn else { $attr = array(); - if (is_array($attributes[$this->finalDN]['add'])) $attr = array_merge_recursive($attr, $attributes[$this->finalDN]['add']); - if (is_array($attributes[$this->finalDN]['notchanged'])) $attr = array_merge_recursive($attr, $attributes[$this->finalDN]['notchanged']); - if (is_array($attributes[$this->finalDN]['modify'])) $attr = array_merge_recursive($attr, $attributes[$this->finalDN]['modify']); + if (isset($attributes[$this->finalDN]['add']) && is_array($attributes[$this->finalDN]['add'])) { + $attr = array_merge_recursive($attr, $attributes[$this->finalDN]['add']); + } + if (isset($attributes[$this->finalDN]['notchanged']) && is_array($attributes[$this->finalDN]['notchanged'])) { + $attr = array_merge_recursive($attr, $attributes[$this->finalDN]['notchanged']); + } + if (isset($attributes[$this->finalDN]['modify']) && is_array($attributes[$this->finalDN]['modify'])) { + $attr = array_merge_recursive($attr, $attributes[$this->finalDN]['modify']); + } $success = ldap_add($_SESSION['ldap']->server(), $this->finalDN, $attr); if (!$success) { logNewMessage(LOG_ERR, '[' . $ldapUser .'] Unable to create DN: ' . $this->finalDN . ' (' . ldap_err2str(ldap_errno($_SESSION['ldap']->server())) . ').'); diff --git a/lam/lib/modules/eduPerson.inc b/lam/lib/modules/eduPerson.inc index c25bac68..1dc6f3bd 100644 --- a/lam/lib/modules/eduPerson.inc +++ b/lam/lib/modules/eduPerson.inc @@ -431,6 +431,9 @@ class eduPerson extends baseModule { } return array(); } + if (!in_array('eduPerson', $this->attributes['objectClass'])) { + return array(); + } $errors = array(); // primary affiliation $this->attributes['eduPersonPrimaryAffiliation'][0] = $_POST['primaryAffiliation']; diff --git a/lam/lib/modules/kolabUser.inc b/lam/lib/modules/kolabUser.inc index 4b34f4ff..0024466e 100644 --- a/lam/lib/modules/kolabUser.inc +++ b/lam/lib/modules/kolabUser.inc @@ -422,7 +422,7 @@ class kolabUser extends baseModule { $this->attributes['objectClass'][] = 'kolabInetOrgPerson'; } else { - if ($_POST['form_subpage_kolabUser_deleteUser_open']) return array(); + if (isset($_POST['form_subpage_kolabUser_deleteUser_open'])) return array(); $this->attributes['kolabInvitationPolicy'] = array(); // country if (isset($_POST['country'])) { diff --git a/lam/lib/modules/ldapPublicKey.inc b/lam/lib/modules/ldapPublicKey.inc index 2dd6d554..93142791 100644 --- a/lam/lib/modules/ldapPublicKey.inc +++ b/lam/lib/modules/ldapPublicKey.inc @@ -90,13 +90,17 @@ class ldapPublicKey extends baseModule { */ function display_html_attributes() { $return = array(); + $keyCount = 0; // list current keys - for ($i = 0; $i < sizeof($this->attributes['sshPublicKey']); $i++) { - $return[] = array( - array('kind' => 'text', 'text' => _('SSH public key')), - array('kind' => 'input', 'name' => 'sshPublicKey' . $i, 'type' => 'text', 'size' => '50', 'maxlength' => '2048', 'value' => $this->attributes['sshPublicKey'][$i]), - array('kind' => 'input', 'type' => 'submit', 'name' => 'delKey' . $i, 'value' => _("Remove")), - array('kind' => 'help', 'value' => 'key')); + if (isset($this->attributes['sshPublicKey'])) { + $keyCount = sizeof($this->attributes['sshPublicKey']); + for ($i = 0; $i < sizeof($this->attributes['sshPublicKey']); $i++) { + $return[] = array( + array('kind' => 'text', 'text' => _('SSH public key')), + array('kind' => 'input', 'name' => 'sshPublicKey' . $i, 'type' => 'text', 'size' => '50', 'maxlength' => '2048', 'value' => $this->attributes['sshPublicKey'][$i]), + array('kind' => 'input', 'type' => 'submit', 'name' => 'delKey' . $i, 'value' => _("Remove")), + array('kind' => 'help', 'value' => 'key')); + } } // input box for new key $return[] = array( @@ -104,7 +108,7 @@ class ldapPublicKey extends baseModule { array('kind' => 'input', 'name' => 'sshPublicKey', 'type' => 'text', 'size' => '50', 'maxlength' => '2048', 'value' => ''), array('kind' => 'input', 'type' => 'submit', 'name' => 'addKey', 'value' => _("Add")), array('kind' => 'help', 'value' => 'key'), - array('kind' => 'input', 'type' => 'hidden', 'value' => sizeof($this->attributes['sshPublicKey']), 'name' => 'key_number')); + array('kind' => 'input', 'type' => 'hidden', 'value' => $keyCount, 'name' => 'key_number')); return $return; } diff --git a/lam/lib/modules/nisnetgroup.inc b/lam/lib/modules/nisnetgroup.inc index 289452ab..b95f30e9 100644 --- a/lam/lib/modules/nisnetgroup.inc +++ b/lam/lib/modules/nisnetgroup.inc @@ -178,9 +178,11 @@ class nisnetgroup extends baseModule { array('kind' => 'text', 'text' => _("Group name").'*'), array('kind' => 'input', 'name' => 'cn', 'type' => 'text', 'size' => '30', 'maxlength' => '20', 'value' => $groupName), array('kind' => 'help', 'value' => 'cn')); + $description = ''; + if (isset($this->attributes['description'][0])) $description = $this->attributes['description'][0]; $return[] = array( array('kind' => 'text', 'text' => _('Description')), - array('kind' => 'input', 'name' => 'description', 'type' => 'text', 'size' => '30', 'maxlength' => '255', 'value' => $this->attributes['description'][0]), + array('kind' => 'input', 'name' => 'description', 'type' => 'text', 'size' => '30', 'maxlength' => '255', 'value' => $description), array ('kind' => 'help', 'value' => 'description')); $subgroups = array(); if (isset($this->attributes['memberNisNetgroup']) && is_array($this->attributes['memberNisNetgroup'])) { diff --git a/lam/lib/modules/posixGroup.inc b/lam/lib/modules/posixGroup.inc index cbf978c8..1d795e30 100644 --- a/lam/lib/modules/posixGroup.inc +++ b/lam/lib/modules/posixGroup.inc @@ -536,7 +536,7 @@ class posixGroup extends baseModule implements passwordService { if (isset($_POST['form_subpage_' . get_class($this) . '_attributes_removePassword'])) { unset($this->attributes['userPassword']); } - if ($_POST['changegids']) $this->changegids=true; + if (isset($_POST['changegids'])) $this->changegids=true; else $this->changegids=false; if (($this->attributes['gidNumber'][0] != $_POST['gidNumber']) || !isset($this->attributes['gidNumber'][0])) { // Check if GID is valid. If none value was entered, the next useable value will be inserted diff --git a/lam/templates/masscreate.php b/lam/templates/masscreate.php index 776229ba..50a72558 100644 --- a/lam/templates/masscreate.php +++ b/lam/templates/masscreate.php @@ -153,7 +153,7 @@ echo "