added managedBy
This commit is contained in:
parent
8cc198ab34
commit
5b30662599
|
@ -95,7 +95,7 @@ class windowsGroup extends baseModule {
|
||||||
// managed object classes
|
// managed object classes
|
||||||
$return['objectClasses'] = array('group', 'securityPrincipal', 'mailRecipient');
|
$return['objectClasses'] = array('group', 'securityPrincipal', 'mailRecipient');
|
||||||
// managed attributes
|
// managed attributes
|
||||||
$return['attributes'] = array('cn', 'description', 'info', 'mail', 'member', 'sAMAccountName', 'groupType', 'otherMailbox');
|
$return['attributes'] = array('cn', 'description', 'info', 'mail', 'member', 'sAMAccountName', 'groupType', 'otherMailbox', 'managedBy');
|
||||||
// help Entries
|
// help Entries
|
||||||
$return['help'] = array(
|
$return['help'] = array(
|
||||||
'hiddenOptions' => array(
|
'hiddenOptions' => array(
|
||||||
|
@ -142,6 +142,10 @@ class windowsGroup extends baseModule {
|
||||||
"Headline" => _('Group scope'), 'attr' => 'groupType',
|
"Headline" => _('Group scope'), 'attr' => 'groupType',
|
||||||
"Text" => _('Please specify the group scope.')
|
"Text" => _('Please specify the group scope.')
|
||||||
),
|
),
|
||||||
|
'managedBy' => array(
|
||||||
|
"Headline" => _('Managed by'), 'attr' => 'managedBy',
|
||||||
|
"Text" => _('The group is managed by this contact person.')
|
||||||
|
),
|
||||||
);
|
);
|
||||||
// configuration settings
|
// configuration settings
|
||||||
$configContainer = new htmlTable();
|
$configContainer = new htmlTable();
|
||||||
|
@ -153,6 +157,8 @@ class windowsGroup extends baseModule {
|
||||||
$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsGroup_hidemail', false, _('Email address'), null, false));
|
$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsGroup_hidemail', false, _('Email address'), null, false));
|
||||||
$configContainerOptions->addElement(new htmlOutputText(' '));
|
$configContainerOptions->addElement(new htmlOutputText(' '));
|
||||||
$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsGroup_hideotherMailbox', false, _('Email alias'), null, false));
|
$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsGroup_hideotherMailbox', false, _('Email alias'), null, false));
|
||||||
|
$configContainerOptions->addElement(new htmlOutputText(' '));
|
||||||
|
$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsGroup_hidemanagedBy', false, _('Managed by'), null, false));
|
||||||
$configContainer->addElement($configContainerOptions, true);
|
$configContainer->addElement($configContainerOptions, true);
|
||||||
$return['config_options']['all'] = $configContainer;
|
$return['config_options']['all'] = $configContainer;
|
||||||
// upload fields
|
// upload fields
|
||||||
|
@ -215,6 +221,14 @@ class windowsGroup extends baseModule {
|
||||||
'example' => _('group@company.com'),
|
'example' => _('group@company.com'),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
if (!$this->isBooleanConfigOptionSet('windowsGroup_hidemanagedBy')) {
|
||||||
|
$return['upload_columns'][] = array(
|
||||||
|
'name' => 'windowsGroup_managedBy',
|
||||||
|
'description' => _('Managed by'),
|
||||||
|
'help' => 'managedBy',
|
||||||
|
'example' => 'cn=user1,o=test',
|
||||||
|
);
|
||||||
|
}
|
||||||
// available PDF fields
|
// available PDF fields
|
||||||
$return['PDF_fields'] = array(
|
$return['PDF_fields'] = array(
|
||||||
'cn' => _('Group name'),
|
'cn' => _('Group name'),
|
||||||
|
@ -230,6 +244,9 @@ class windowsGroup extends baseModule {
|
||||||
if (!$this->isBooleanConfigOptionSet('windowsGroup_hideotherMailbox')) {
|
if (!$this->isBooleanConfigOptionSet('windowsGroup_hideotherMailbox')) {
|
||||||
$return['PDF_fields']['otherMailbox'] = _('Email alias');
|
$return['PDF_fields']['otherMailbox'] = _('Email alias');
|
||||||
}
|
}
|
||||||
|
if (!$this->isBooleanConfigOptionSet('windowsGroup_hidemanagedBy')) {
|
||||||
|
$return['PDF_fields']['managedBy'] = _('Managed by');
|
||||||
|
}
|
||||||
return $return;
|
return $return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -307,6 +324,24 @@ class windowsGroup extends baseModule {
|
||||||
$info = $this->attributes['info'][0];
|
$info = $this->attributes['info'][0];
|
||||||
}
|
}
|
||||||
$container->addElement(new htmlTableExtendedInputTextarea('info', $info, 30, 5, _('Notes'), 'info'), true);
|
$container->addElement(new htmlTableExtendedInputTextarea('info', $info, 30, 5, _('Notes'), 'info'), true);
|
||||||
|
// managed by
|
||||||
|
if (!$this->isBooleanConfigOptionSet('windowsGroup_hidemanagedBy')) {
|
||||||
|
$container->addElement(new htmlOutputText(_('Managed by')));
|
||||||
|
$managedBy = '-';
|
||||||
|
if (isset($this->attributes['managedBy'][0])) {
|
||||||
|
$managedBy = $this->attributes['managedBy'][0];
|
||||||
|
}
|
||||||
|
$container->addElement(new htmlOutputText(getAbstractDN($managedBy)));
|
||||||
|
$container->addElement(new htmlHelpLink('managedBy'), true);
|
||||||
|
$container->addElement(new htmlOutputText(''));
|
||||||
|
$managedByButtons = new htmlGroup();
|
||||||
|
$managedByButtons->addElement(new htmlAccountPageButton(get_class($this), 'managedBy', 'edit', _('Change')));
|
||||||
|
if (isset($this->attributes['managedBy'][0])) {
|
||||||
|
$managedByButtons->addElement(new htmlSpacer('5px', null));
|
||||||
|
$managedByButtons->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'removeManagedBy', _('Remove')));
|
||||||
|
}
|
||||||
|
$container->addElement($managedByButtons, true);
|
||||||
|
}
|
||||||
// group members
|
// group members
|
||||||
$container->addElement(new htmlSpacer(null, '10px'), true);
|
$container->addElement(new htmlSpacer(null, '10px'), true);
|
||||||
$container->addElement(new htmlOutputText(_("Group members")));
|
$container->addElement(new htmlOutputText(_("Group members")));
|
||||||
|
@ -378,9 +413,68 @@ class windowsGroup extends baseModule {
|
||||||
}
|
}
|
||||||
// notes
|
// notes
|
||||||
$this->attributes['info'][0] = $_POST['info'];
|
$this->attributes['info'][0] = $_POST['info'];
|
||||||
|
// managed by
|
||||||
|
if (!$this->isBooleanConfigOptionSet('windowsGroup_hidemanagedBy')) {
|
||||||
|
if (isset($_POST['form_subpage_' . get_class($this) . '_attributes_removeManagedBy'])) {
|
||||||
|
unset($this->attributes['managedBy']);
|
||||||
|
}
|
||||||
|
}
|
||||||
return $return;
|
return $return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function will create the meta HTML code to show a page to change the member attribute.
|
||||||
|
*
|
||||||
|
* @return htmlElement HTML meta data
|
||||||
|
*/
|
||||||
|
function display_html_managedBy() {
|
||||||
|
$return = new htmlTable();
|
||||||
|
// show possible managers
|
||||||
|
$options = array();
|
||||||
|
$filter = get_ldap_filter('user');
|
||||||
|
$entries = searchLDAPByFilter($filter, array('dn'), array('user'));
|
||||||
|
for ($i = 0; $i < sizeof($entries); $i++) {
|
||||||
|
$entries[$i] = $entries[$i]['dn'];
|
||||||
|
}
|
||||||
|
// sort by DN
|
||||||
|
usort($entries, 'compareDN');
|
||||||
|
for ($i = 0; $i < sizeof($entries); $i++) {
|
||||||
|
$options[getAbstractDN($entries[$i])] = $entries[$i];
|
||||||
|
}
|
||||||
|
$selected = array();
|
||||||
|
if (isset($this->attributes['managedBy'][0])) {
|
||||||
|
$selected = array($this->attributes['managedBy'][0]);
|
||||||
|
if (!in_array($selected[0], $options)) {
|
||||||
|
$options[getAbstractDN($selected[0])] = $selected[0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$membersSelect = new htmlSelect('managedBy', $options, $selected);
|
||||||
|
$membersSelect->setHasDescriptiveElements(true);
|
||||||
|
$membersSelect->setRightToLeftTextDirection(true);
|
||||||
|
$membersSelect->setSortElements(false);
|
||||||
|
$membersSelect->setTransformSingleSelect(false);
|
||||||
|
$return->addElement($membersSelect, true);
|
||||||
|
$buttonTable = new htmlTable();
|
||||||
|
$buttonTable->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'set', _('Change')));
|
||||||
|
$buttonTable->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'cancel', _('Cancel')));
|
||||||
|
$return->addElement($buttonTable);
|
||||||
|
return $return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Processes user input of the members page.
|
||||||
|
* It checks if all input values are correct and updates the associated LDAP attributes.
|
||||||
|
*
|
||||||
|
* @return array list of info/error messages
|
||||||
|
*/
|
||||||
|
function process_managedBy() {
|
||||||
|
$return = array();
|
||||||
|
if (isset($_POST['form_subpage_' . get_class($this) . '_attributes_set'])) {
|
||||||
|
$this->attributes['managedBy'][] = $_POST['managedBy'];
|
||||||
|
}
|
||||||
|
return $return;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This function will create the meta HTML code to show a page to change the member attribute.
|
* This function will create the meta HTML code to show a page to change the member attribute.
|
||||||
*
|
*
|
||||||
|
@ -559,6 +653,10 @@ class windowsGroup extends baseModule {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// managed by
|
||||||
|
if (!$this->isBooleanConfigOptionSet('windowsGroup_hidemanagedBy') && $rawAccounts[$i][$ids['windowsGroup_managedBy']] != "") {
|
||||||
|
$partialAccounts[$i]['managedBy'] = $rawAccounts[$i][$ids['windowsGroup_managedBy']];
|
||||||
|
}
|
||||||
// add members
|
// add members
|
||||||
if ($rawAccounts[$i][$ids['windowsGroup_members']] != "") {
|
if ($rawAccounts[$i][$ids['windowsGroup_members']] != "") {
|
||||||
$partialAccounts[$i]['member'] = explode(";", $rawAccounts[$i][$ids['windowsGroup_members']]);
|
$partialAccounts[$i]['member'] = explode(";", $rawAccounts[$i][$ids['windowsGroup_members']]);
|
||||||
|
@ -643,6 +741,12 @@ class windowsGroup extends baseModule {
|
||||||
$groupScope = $groupScopeLabels[$groupScope];
|
$groupScope = $groupScopeLabels[$groupScope];
|
||||||
$return[get_class($this) . '_groupScope'] = array('<block><key>' . _('Group scope') . '</key><value>' . $groupScope . '</value></block>');
|
$return[get_class($this) . '_groupScope'] = array('<block><key>' . _('Group scope') . '</key><value>' . $groupScope . '</value></block>');
|
||||||
$return[get_class($this) . '_groupType'] = array('<block><key>' . _('Group type') . '</key><value>' . $groupType . '</value></block>');
|
$return[get_class($this) . '_groupType'] = array('<block><key>' . _('Group type') . '</key><value>' . $groupType . '</value></block>');
|
||||||
|
// managed by
|
||||||
|
$managedBy = '';
|
||||||
|
if (isset($this->attributes['managedBy'][0])) {
|
||||||
|
$managedBy = getAbstractDN($this->attributes['managedBy'][0]);
|
||||||
|
$return[get_class($this) . '_managedBy'] = array('<block><key>' . _('Managed by') . '</key><value>' . $managedBy . '</value></block>');
|
||||||
|
}
|
||||||
// members
|
// members
|
||||||
if (sizeof($this->attributes['member']) > 0) {
|
if (sizeof($this->attributes['member']) > 0) {
|
||||||
$memberList = array();
|
$memberList = array();
|
||||||
|
|
Loading…
Reference in New Issue