diff --git a/lam/lib/modules/eduPerson.inc b/lam/lib/modules/eduPerson.inc
index d87af977..aa89d8b2 100644
--- a/lam/lib/modules/eduPerson.inc
+++ b/lam/lib/modules/eduPerson.inc
@@ -97,7 +97,19 @@ class eduPerson extends baseModule {
'entitlement' => array(
"Headline" => _("Entitlements"),
"Text" => _("URI (either URN or URL) that indicates a set of rights to specific resources.")
- ));
+ ),
+ 'orgDN' => array(
+ "Headline" => _("Organization"),
+ "Text" => _("The DN of the directory entry representing the institution with which the person is associated.")
+ ),
+ 'primaryOrgUnitDN' => array(
+ "Headline" => _("Primary organizational unit"),
+ "Text" => _("The DN of the directory entry representing the person's primary organizational unit.")
+ ),
+ 'orgUnitDN' => array(
+ "Headline" => _("Organizational units"),
+ "Text" => _("The DNs of the directory entries representing the person's organizational units.")
+ ));
// upload fields
$return['upload_columns'] = array(
array(
@@ -120,8 +132,11 @@ class eduPerson extends baseModule {
* This function fills the error message array with messages
*/
function load_Messages() {
- $this->messages['principalName'][0] = array('ERROR', 'Principal name is invalid!');
- $this->messages['principalName'][1] = array('ERROR', _('Account %s:') . ' eduPerson_principalName', 'Principal name is invalid!');
+ $this->messages['principalName'][0] = array('ERROR', _('Principal name is invalid!'));
+ $this->messages['principalName'][1] = array('ERROR', _('Account %s:') . ' eduPerson_principalName', _('Principal name is invalid!'));
+ $this->messages['orgDN'][0] = array('ERROR', _('Please enter a valid DN in the field:') . ' ' . _("Organization"));
+ $this->messages['primaryOrgUnitDN'][0] = array('ERROR', _('Please enter a valid DN in the field:') . ' ' . _("Primary organizational unit"));
+ $this->messages['orgUnitDN'][0] = array('ERROR', _('Organizational units contains an invalid entry.'));
}
/**
@@ -249,6 +264,52 @@ class eduPerson extends baseModule {
))),
array('kind' => 'text', 'text' => ' ')
);
+ // org DN
+ $orgDN = '';
+ if (isset($this->attributes['eduPersonOrgDN'][0])) {
+ $orgDN = $this->attributes['eduPersonOrgDN'][0];
+ }
+ $return[] = array(
+ array('kind' => 'text', 'text' => _('Organization')),
+ array('kind' => 'input', 'type' => 'text', 'size' => '40', 'name' => 'orgDN', 'value' => $orgDN),
+ array('kind' => 'help', 'value' => 'orgDN')
+ );
+ // primare OU DN
+ $primaryOrgUnitDN = '';
+ if (isset($this->attributes['eduPersonPrimaryOrgUnitDN'][0])) {
+ $primaryOrgUnitDN = $this->attributes['eduPersonPrimaryOrgUnitDN'][0];
+ }
+ $return[] = array(
+ array('kind' => 'text', 'text' => _('Primary organizational unit')),
+ array('kind' => 'input', 'type' => 'text', 'size' => '40', 'name' => 'primaryOrgUnitDN', 'value' => $primaryOrgUnitDN),
+ array('kind' => 'help', 'value' => 'primaryOrgUnitDN')
+ );
+ // OUs
+ $orgUnitDN = array();
+ if (isset($this->attributes['eduPersonOrgUnitDN'][0])) {
+ for ($i = 0; $i < sizeof($this->attributes['eduPersonOrgUnitDN']); $i++) {
+ $orgUnitDN[] = array(
+ array('kind' => 'input', 'name' => 'orgUnitDN' . $i, 'type' => 'text', 'value' => $this->attributes['eduPersonOrgUnitDN'][$i], 'size' => '40'),
+ array('kind' => 'input', 'type' => 'submit', 'name' => 'delOrgUnitDN' . $i, 'image' => 'del.png', 'value' => ' ', 'title' => _('Delete'))
+ );
+ }
+ }
+ else {
+ $orgUnitDN = array(array(array('kind' => 'text', 'text' => '-')));
+ }
+ $return[] = array(
+ array('kind' => 'text', 'text' => _('Organizational units'), 'td' => array('valign' => 'top')),
+ array('kind' => 'table', 'value' => $orgUnitDN),
+ array('kind' => 'help', 'value' => 'orgUnitDN', 'td' => array('valign' => 'top'))
+ );
+ $return[] = array(
+ array('kind' => 'text', 'text' => ' '),
+ array('kind' => 'table', 'value' => array(array(
+ array('kind' => 'input', 'name' => 'orgUnitDN', 'type' => 'text', 'value' => '', 'size' => '40'),
+ array('kind' => 'input', 'type' => 'submit', 'name' => 'newOrgUnitDN', 'image' => 'add.png', 'value' => ' ', 'title' => _('Add'))
+ ))),
+ array('kind' => 'text', 'text' => ' ')
+ );
}
else {
$return[] = array(
@@ -322,6 +383,43 @@ class eduPerson extends baseModule {
$this->attributes['eduPersonEntitlement'][] = $_POST['entitlement'];
}
$this->attributes['eduPersonEntitlement'] = array_unique($this->attributes['eduPersonEntitlement']);
+ // org DN
+ $this->attributes['eduPersonOrgDN'][0] = $_POST['orgDN'];
+ if ($_POST['orgDN'] != '') {
+ if (!get_preg($_POST['orgDN'], 'dn')) {
+ $errors[] = $this->messages['orgDN'][0];
+ }
+ }
+ // primary OU
+ $this->attributes['eduPersonPrimaryOrgUnitDN'][0] = $_POST['primaryOrgUnitDN'];
+ if ($_POST['primaryOrgUnitDN'] != '') {
+ if (!get_preg($_POST['primaryOrgUnitDN'], 'dn')) {
+ $errors[] = $this->messages['primaryOrgUnitDN'][0];
+ }
+ }
+ // OUs
+ $this->attributes['eduPersonOrgUnitDN'] = array();
+ $i = 0;
+ while (isset($_POST['orgUnitDN' . $i])) {
+ if (!isset($_POST['delOrgUnitDN' . $i]) && ($_POST['orgUnitDN' . $i] != '')) {
+ $this->attributes['eduPersonOrgUnitDN'][] = $_POST['orgUnitDN' . $i];
+ if (!get_preg($_POST['orgUnitDN' . $i], 'dn')) {
+ $error = $this->messages['orgUnitDN'][0];
+ array_push($error, $_POST['orgUnitDN' . $i]);
+ $errors[] = $error;
+ }
+ }
+ $i++;
+ }
+ if (isset($_POST['newOrgUnitDN']) && ($_POST['orgUnitDN'] != '')) {
+ $this->attributes['eduPersonOrgUnitDN'][] = $_POST['orgUnitDN'];
+ if (!get_preg($_POST['orgUnitDN'], 'dn')) {
+ $error = $this->messages['orgUnitDN'][0];
+ array_push($error, $_POST['orgUnitDN']);
+ $errors[] = $error;
+ }
+ }
+ $this->attributes['eduPersonOrgUnitDN'] = array_unique($this->attributes['eduPersonOrgUnitDN']);
return $errors;
}
@@ -374,6 +472,15 @@ class eduPerson extends baseModule {
sort($this->attributes['eduPersonEntitlement']);
$return['eduPerson_entitlement'][0] = '' . _('Entitlements') . '' . implode(', ', $this->attributes['eduPersonEntitlement']) . '';
}
+ if (isset($this->attributes['eduPersonOrgDN'][0])) {
+ $return['eduPerson_orgDN'][0] = '' . _('Organization') . '' . $this->attributes['eduPersonOrgDN'][0] . '';
+ }
+ if (isset($this->attributes['eduPersonPrimaryOrgUnitDN'][0])) {
+ $return['eduPerson_primaryOrgUnitDN'][0] = '' . _('Primary organizational unit') . '' . $this->attributes['eduPersonPrimaryOrgUnitDN'][0] . '';
+ }
+ if (isset($this->attributes['eduPersonOrgUnitDN'][0])) {
+ $return['eduPerson_orgUnitDN'][0] = '' . _('Organizational units') . '' . implode(', ', $this->attributes['eduPersonOrgUnitDN']) . '';
+ }
return $return;
}