added filter for members

This commit is contained in:
Roland Gruber 2013-03-24 11:23:54 +00:00
parent 40c91ee816
commit e9bda2315e
1 changed files with 27 additions and 3 deletions

View File

@ -229,6 +229,10 @@ class posixGroup extends baseModule implements passwordService {
*/ */
function display_html_user() { function display_html_user() {
$return = new htmlTable(); $return = new htmlTable();
$filter = '';
if (isset($_POST['setFilter'])) {
$filter = $_POST['newFilter'];
}
if (!isset($this->attributes['memberUid'])) { if (!isset($this->attributes['memberUid'])) {
$this->attributes['memberUid'] = array(); $this->attributes['memberUid'] = array();
} }
@ -237,14 +241,18 @@ class posixGroup extends baseModule implements passwordService {
$users = array(); $users = array();
foreach ($userAndGIDs as $user => $userAttrs) { foreach ($userAndGIDs as $user => $userAttrs) {
if (!in_array($user, $this->attributes['memberUid'])) { if (!in_array($user, $this->attributes['memberUid'])) {
$display = $user . ' (' . $userAttrs['cn'] . ')';
if (!empty($filter) && !preg_match('/' . str_replace('*', '.*', $filter) . '/ui', $display)) {
continue;
}
if ($this->attributes['gidNumber'][0] == $userAttrs['gid']) { if ($this->attributes['gidNumber'][0] == $userAttrs['gid']) {
if (isset($this->moduleSettings['posixAccount_primaryGroupAsSecondary'][0]) if (isset($this->moduleSettings['posixAccount_primaryGroupAsSecondary'][0])
&& ($this->moduleSettings['posixAccount_primaryGroupAsSecondary'][0] == 'true')) { && ($this->moduleSettings['posixAccount_primaryGroupAsSecondary'][0] == 'true')) {
$users[$user . ' (' . $userAttrs['cn'] . ')'] = $user; $users[$display] = $user;
} }
} }
else { else {
$users[$user . ' (' . $userAttrs['cn'] . ')'] = $user; $users[$display] = $user;
} }
} }
} }
@ -284,10 +292,21 @@ class posixGroup extends baseModule implements passwordService {
$addSelect->setHasDescriptiveElements(true); $addSelect->setHasDescriptiveElements(true);
$return->addElement($addSelect); $return->addElement($addSelect);
$return->addNewLine(); $return->addNewLine();
$return->addElement(new htmlOutputText(''));
$return->addElement(new htmlOutputText(''));
$filterContainer = new htmlGroup();
$filterInput = new htmlInputField('newFilter', $filter, 10);
$filterInput->setOnKeyPress('SubmitForm(\'setFilter\', event);');
$filterContainer->addElement($filterInput);
$filterContainer->addElement(new htmlButton('setFilter', _('Filter')));
$filterContainer->addElement(new htmlHelpLink('filter'));
$filterContainer->addElement(new htmlHiddenInput('filterValue', htmlspecialchars($filter)));
$return->addElement($filterContainer, true);
// back button // back button
$return->addElement(new htmlSpacer(null, '10px'), true); $return->addElement(new htmlSpacer(null, '10px'), true);
$return->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'back', _('Back'))); $return->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'back', _('Back')));
$return->addElement(new htmlEqualHeight(array('removeusers', 'addusers')));
return $return; return $return;
} }
@ -444,6 +463,11 @@ class posixGroup extends baseModule implements passwordService {
"Headline" => _("Samba ID pool DN"), "Headline" => _("Samba ID pool DN"),
"Text" => _("Please enter the DN of the LDAP entry with object class \"sambaUnixIdPool\".") "Text" => _("Please enter the DN of the LDAP entry with object class \"sambaUnixIdPool\".")
), ),
'filter' => array(
"Headline" => _("Filter"),
"Text" => _("Here you can enter a filter value. Only entries which contain the filter text will be shown.")
. ' ' . _('Possible wildcards are: "*" = any character, "^" = line start, "$" = line end')
),
); );
return $return; return $return;