getIndex(),get_request('template','REQUEST',false,null)); $request['page']->setDN($request['dn']); $request['page']->accept(true); $request['template'] = $request['page']->getTemplate(); if (! is_null($request['dn'])) { $rdn = get_rdn($request['dn']); } else { $rdn = NULL; } # Get all current group members $current_members = $app['server']->getDNAttrValue($request['dn'],$request['attr']); usort($current_members,'pla_compare_dns'); # Loop through all base dn's and search possible member entries $query = array(); # Get all entries that can be added to the group if (preg_match("/^".$request['attr']."$/i",$_SESSION[APPCONFIG]->getValue('modify_member','posixgroupattr'))) { $query['filter'] = $_SESSION[APPCONFIG]->getValue('modify_member','posixfilter'); $attr = $_SESSION[APPCONFIG]->getValue('modify_member','posixattr'); } else { $query['filter'] = $_SESSION[APPCONFIG]->getValue('modify_member','filter'); $attr = $_SESSION[APPCONFIG]->getValue('modify_member','attr'); } $query['attrs'] = array($attr); $possible_values = array(); foreach ($app['server']->getBaseDN() as $base) { $query['base'] = $base; $possible_values = array_merge($possible_values,$app['server']->query($query,null)); } usort($possible_values,'pla_compare_dns'); $request['page']->drawTitle(sprintf('%s %s',_('Modify group'),get_rdn($request['dn']))); $request['page']->drawSubTitle(); printf('%s %s %s %s:', _('There are'),count($current_members),_('members in group'),htmlspecialchars(get_rdn($request['dn']))); $possible_members = array(); for ($i=0;$igetValue('modify_member','posixgroupattr'))) { $possible_members[$i] = $possible_values[$i][$_SESSION[APPCONFIG]->getValue('modify_member', 'posixattr')][0]; } else { $possible_members[$i] = $possible_values[$i][$_SESSION[APPCONFIG]->getValue('modify_member', 'attr')]; } } # Show only user that are not already in group. $possible_members = array_diff($possible_members,$current_members); usort($possible_members,'pla_compare_dns'); /* Draw form with select boxes, left for all possible members and * right one for those that belong to group */ # Modifications will be sent to update_confirm which takes care of rest of the processing echo '
'; echo '
'; echo '
'; echo '
'; if ($_SESSION[APPCONFIG]->getValue('confirm','update')) { echo ''; } else { echo ''; } echo '
'; echo ''; echo ''; printf('',IMGDIR,_('Available members')); printf('',IMGDIR,_('Group members')); echo ''; # Generate select box from all possible members echo ''; echo ''; # Generate select box from all current members echo ''; echo ''; # Show buttons which move users from left to right and vice versa echo ''; echo ''; echo ''; echo ''; echo ''; echo '
Users %sMembers %s
'; echo ''; echo ''; echo ''; echo '
'; printf(' ', _('Add selected'),_('Add all')); echo ''; printf(' ', _('Remove selected'),('Remove all')); echo '
'; # Hidden attributes for update_confirm.php printf('',$app['server']->getIndex()); printf('',rawurlencode($request['dn'])); printf('',$request['attr']); /* Generate array of input text boxes from current members. * update_confirm.php will see this as old_values[member-attribute][item] */ for ($i=0; $i', htmlspecialchars($request['attr']), $i, htmlspecialchars($current_members[$i])); } /* Javascript generates array of input text boxes from new members. * update_confirm.php will see this as new_values[member-attribute][item] * Input text boxes will be generated to div=dnu */ echo '
'; printf('',htmlspecialchars($request['attr'])); echo '
'; # Submit values to update_confirm.php and when clicked, run addSelected printf('',_('Save changes'),$request['attr']); echo '
'; echo '
'; printf('',JSDIR);