forked from extern/egroupware
Patch from Klaus Leithoff <kl-at-stylite.de> to better deal with a big number of groups in edit accounts
This commit is contained in:
parent
22508fffc1
commit
176554400a
@ -74,7 +74,7 @@
|
|||||||
'start' => 'start with',
|
'start' => 'start with',
|
||||||
'exact' => 'exact',
|
'exact' => 'exact',
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($GLOBALS['egw']->acl->check('group_access',1,'admin'))
|
if ($GLOBALS['egw']->acl->check('group_access',1,'admin'))
|
||||||
{
|
{
|
||||||
$GLOBALS['egw']->redirect($GLOBALS['egw']->link('/admin/index.php'));
|
$GLOBALS['egw']->redirect($GLOBALS['egw']->link('/admin/index.php'));
|
||||||
@ -88,7 +88,7 @@
|
|||||||
//if(eregi('^[a-z_0-9]+$',$_REQUEST['query']))
|
//if(eregi('^[a-z_0-9]+$',$_REQUEST['query']))
|
||||||
$GLOBALS['query'] = $_REQUEST['query'];
|
$GLOBALS['query'] = $_REQUEST['query'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if(isset($_POST['start']))
|
if(isset($_POST['start']))
|
||||||
{
|
{
|
||||||
$start = (int)$_POST['start'];
|
$start = (int)$_POST['start'];
|
||||||
@ -117,7 +117,7 @@
|
|||||||
$sort = 'ASC';
|
$sort = 'ASC';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
unset($GLOBALS['egw_info']['flags']['noheader']);
|
unset($GLOBALS['egw_info']['flags']['noheader']);
|
||||||
unset($GLOBALS['egw_info']['flags']['nonavbar']);
|
unset($GLOBALS['egw_info']['flags']['nonavbar']);
|
||||||
if(!@is_object($GLOBALS['egw']->js))
|
if(!@is_object($GLOBALS['egw']->js))
|
||||||
@ -226,7 +226,7 @@
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$link_data += array(
|
$link_data += array(
|
||||||
'order' => $order,
|
'order' => $order,
|
||||||
'sort' => $sort,
|
'sort' => $sort,
|
||||||
@ -259,7 +259,7 @@
|
|||||||
'class' => $_REQUEST['query_type'] != 'start' || !in_array($GLOBALS['query'],$letters) ? 'letter_box_active' : 'letter_box',
|
'class' => $_REQUEST['query_type'] != 'start' || !in_array($GLOBALS['query'],$letters) ? 'letter_box_active' : 'letter_box',
|
||||||
));
|
));
|
||||||
$p->fp('letter_search_cells','letter_search',True);
|
$p->fp('letter_search_cells','letter_search',True);
|
||||||
|
|
||||||
$var = Array(
|
$var = Array(
|
||||||
'new_action' => $GLOBALS['egw']->link('/index.php','menuaction=admin.uiaccounts.add_group'),
|
'new_action' => $GLOBALS['egw']->link('/index.php','menuaction=admin.uiaccounts.add_group'),
|
||||||
'search_action' => $GLOBALS['egw']->link('/index.php','menuaction=admin.uiaccounts.list_groups')
|
'search_action' => $GLOBALS['egw']->link('/index.php','menuaction=admin.uiaccounts.list_groups')
|
||||||
@ -606,7 +606,7 @@
|
|||||||
$this->list_users();
|
$this->list_users();
|
||||||
return False;
|
return False;
|
||||||
}
|
}
|
||||||
|
|
||||||
unset($GLOBALS['egw_info']['flags']['noheader']);
|
unset($GLOBALS['egw_info']['flags']['noheader']);
|
||||||
unset($GLOBALS['egw_info']['flags']['nonavbar']);
|
unset($GLOBALS['egw_info']['flags']['nonavbar']);
|
||||||
if(!@is_object($GLOBALS['egw']->js))
|
if(!@is_object($GLOBALS['egw']->js))
|
||||||
@ -660,7 +660,7 @@
|
|||||||
'extradata' => 'menuaction=admin.uiaclmanager.list_apps'
|
'extradata' => 'menuaction=admin.uiaclmanager.list_apps'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -679,7 +679,7 @@
|
|||||||
$accountid = $account_id;
|
$accountid = $account_id;
|
||||||
settype($account_id,'integer');
|
settype($account_id,'integer');
|
||||||
$account_id = ($_GET['account_id'] ? $_GET['account_id'] : (int)$accountid);
|
$account_id = ($_GET['account_id'] ? $_GET['account_id'] : (int)$accountid);
|
||||||
|
|
||||||
// todo
|
// todo
|
||||||
// not needed if i use the same file for new groups too
|
// not needed if i use the same file for new groups too
|
||||||
if (! $account_id)
|
if (! $account_id)
|
||||||
@ -719,11 +719,11 @@
|
|||||||
'extradata' => 'menuaction=admin.uiaclmanager.list_apps'
|
'extradata' => 'menuaction=admin.uiaclmanager.list_apps'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// NDEE210804
|
// NDEE210804
|
||||||
// added for different way of handling ldap entries inside account manager
|
// added for different way of handling ldap entries inside account manager
|
||||||
// we show this only, if accounts are stored in ldap
|
// we show this only, if accounts are stored in ldap
|
||||||
/* just doublicated EMailAdmin functionality
|
/* just doublicated EMailAdmin functionality
|
||||||
if ($GLOBALS['egw_info']['server']['account_repository'] == "ldap")
|
if ($GLOBALS['egw_info']['server']['account_repository'] == "ldap")
|
||||||
{
|
{
|
||||||
$GLOBALS['menuData'][] = array(
|
$GLOBALS['menuData'][] = array(
|
||||||
@ -734,8 +734,8 @@
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
//NDEE
|
//NDEE
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function edit_user($cd='',$account_id='')
|
function edit_user($cd='',$account_id='')
|
||||||
@ -753,7 +753,7 @@
|
|||||||
$accountid = $account_id;
|
$accountid = $account_id;
|
||||||
settype($account_id,'integer');
|
settype($account_id,'integer');
|
||||||
$account_id = (int)($_GET['account_id'] ? $_GET['account_id'] : $accountid);
|
$account_id = (int)($_GET['account_id'] ? $_GET['account_id'] : $accountid);
|
||||||
|
|
||||||
// todo
|
// todo
|
||||||
// not needed if i use the same file for new users too
|
// not needed if i use the same file for new users too
|
||||||
if (! $account_id)
|
if (! $account_id)
|
||||||
@ -888,9 +888,9 @@
|
|||||||
$availableApps = $GLOBALS['egw_info']['apps'];
|
$availableApps = $GLOBALS['egw_info']['apps'];
|
||||||
@asort($availableApps);
|
@asort($availableApps);
|
||||||
@reset($availableApps);
|
@reset($availableApps);
|
||||||
foreach($availableApps as $app => $data)
|
foreach($availableApps as $app => $data)
|
||||||
{
|
{
|
||||||
if ($data['enabled'] && $data['status'] != 2)
|
if ($data['enabled'] && $data['status'] != 2)
|
||||||
{
|
{
|
||||||
$perm_display[$i]['appName'] = $app;
|
$perm_display[$i]['appName'] = $app;
|
||||||
$perm_display[$i]['title'] = $data['title'];
|
$perm_display[$i]['title'] = $data['title'];
|
||||||
@ -950,7 +950,7 @@
|
|||||||
$accountid = $account_id;
|
$accountid = $account_id;
|
||||||
settype($account_id,'integer');
|
settype($account_id,'integer');
|
||||||
$account_id = (int)($_GET['account_id'] ? $_GET['account_id'] : $accountid);
|
$account_id = (int)($_GET['account_id'] ? $_GET['account_id'] : $accountid);
|
||||||
|
|
||||||
// todo
|
// todo
|
||||||
// not needed if i use the same file for new groups too
|
// not needed if i use the same file for new groups too
|
||||||
if (! $account_id)
|
if (! $account_id)
|
||||||
@ -985,7 +985,7 @@
|
|||||||
$p->set_file(Array('edit' => 'group_form.tpl'));
|
$p->set_file(Array('edit' => 'group_form.tpl'));
|
||||||
$p->set_block('edit','select');
|
$p->set_block('edit','select');
|
||||||
$p->set_block('edit','popwin');
|
$p->set_block('edit','popwin');
|
||||||
//fix from Maanus 280105
|
//fix from Maanus 280105
|
||||||
$accounts =& CreateObject('phpgwapi.accounts',$group_info['account_id'],'g');
|
$accounts =& CreateObject('phpgwapi.accounts',$group_info['account_id'],'g');
|
||||||
|
|
||||||
if (!is_object($GLOBALS['egw']->uiaccountsel))
|
if (!is_object($GLOBALS['egw']->uiaccountsel))
|
||||||
@ -1047,7 +1047,7 @@
|
|||||||
$perm_html = '<td width="35%">'.lang('Application').'</td><td width="15%">'.lang('enabled').' / '.lang('ACL').'</td>';
|
$perm_html = '<td width="35%">'.lang('Application').'</td><td width="15%">'.lang('enabled').' / '.lang('ACL').'</td>';
|
||||||
$perm_html = '<tr class="th">'.
|
$perm_html = '<tr class="th">'.
|
||||||
$perm_html.$perm_html."</tr>\n";
|
$perm_html.$perm_html."</tr>\n";
|
||||||
|
|
||||||
$tr_color = $GLOBALS['egw_info']['theme']['row_off'];
|
$tr_color = $GLOBALS['egw_info']['theme']['row_off'];
|
||||||
for ($i=0;$i < count($perm_display);$i++)
|
for ($i=0;$i < count($perm_display);$i++)
|
||||||
{
|
{
|
||||||
@ -1087,7 +1087,7 @@
|
|||||||
function create_edit_user($_account_id,$_userData='',$_errors='')
|
function create_edit_user($_account_id,$_userData='',$_errors='')
|
||||||
{
|
{
|
||||||
$GLOBALS['egw_info']['flags']['include_xajax'] = true;
|
$GLOBALS['egw_info']['flags']['include_xajax'] = true;
|
||||||
|
|
||||||
$jscal =& CreateObject('phpgwapi.jscalendar');
|
$jscal =& CreateObject('phpgwapi.jscalendar');
|
||||||
|
|
||||||
unset($GLOBALS['egw_info']['flags']['noheader']);
|
unset($GLOBALS['egw_info']['flags']['noheader']);
|
||||||
@ -1097,7 +1097,7 @@
|
|||||||
$GLOBALS['egw']->js =& CreateObject('phpgwapi.javascript');
|
$GLOBALS['egw']->js =& CreateObject('phpgwapi.javascript');
|
||||||
}
|
}
|
||||||
$GLOBALS['egw']->js->validate_file('jscode','openwindow','admin');
|
$GLOBALS['egw']->js->validate_file('jscode','openwindow','admin');
|
||||||
|
|
||||||
$GLOBALS['egw']->common->egw_header();
|
$GLOBALS['egw']->common->egw_header();
|
||||||
|
|
||||||
$t =& CreateObject('phpgwapi.Template',EGW_APP_TPL);
|
$t =& CreateObject('phpgwapi.Template',EGW_APP_TPL);
|
||||||
@ -1116,9 +1116,9 @@
|
|||||||
$t->set_block('account','form_buttons_','form_buttons_');
|
$t->set_block('account','form_buttons_','form_buttons_');
|
||||||
$t->set_block('account','link_row','link_row');
|
$t->set_block('account','link_row','link_row');
|
||||||
|
|
||||||
$theme = $GLOBALS['egw_info']['user']['preferences']['common']['theme'];
|
$theme = $GLOBALS['egw_info']['user']['preferences']['common']['theme'];
|
||||||
$t->set_var('icon_create_edit', '<img src="'. $GLOBALS['egw_info']['server']['webserver_url'] .'/admin/templates/'.$theme.'/images/useradm.gif">');
|
$t->set_var('icon_create_edit', '<img src="'. $GLOBALS['egw_info']['server']['webserver_url'] .'/admin/templates/'.$theme.'/images/useradm.gif">');
|
||||||
|
|
||||||
//print_debug('Type : '.gettype($_userData).'<br>_userData(size) = "'.$_userData.'"('.strlen($_userData).')');
|
//print_debug('Type : '.gettype($_userData).'<br>_userData(size) = "'.$_userData.'"('.strlen($_userData).')');
|
||||||
if (is_array($_userData))
|
if (is_array($_userData))
|
||||||
{
|
{
|
||||||
@ -1275,6 +1275,27 @@
|
|||||||
$t->set_var($var);
|
$t->set_var($var);
|
||||||
$t->parse('password_fields','form_passwordinfo',True);
|
$t->parse('password_fields','form_passwordinfo',True);
|
||||||
|
|
||||||
|
// prepare the allGroups array for use with the checkbox-multiselect use
|
||||||
|
$allGroupsBuff=array();
|
||||||
|
while (list($key,$value) = each($allGroups))
|
||||||
|
{
|
||||||
|
$allGroupsBuff[$value['account_lid']]=$value['account_id'];
|
||||||
|
}
|
||||||
|
// sort alphabetical
|
||||||
|
ksort($allGroupsBuff);
|
||||||
|
$allGroupsSorted=array();
|
||||||
|
while (list($key,$value) = each($allGroupsBuff))
|
||||||
|
{
|
||||||
|
$allGroupsSorted[$value]=$key;
|
||||||
|
}
|
||||||
|
//prepare the userGroups Array for use with the checkbox-multiselect use -> selarray
|
||||||
|
$selarray=array();
|
||||||
|
while (list($key,$value) = each($userGroups))
|
||||||
|
{
|
||||||
|
array_push($selarray,$value['account_id']);
|
||||||
|
}
|
||||||
|
$t->set_var('groups_select','<div id="groupselector">' .$GLOBALS['egw']->html->checkbox_multiselect('account_groups[]',$selarray,$allGroupsSorted,true,'',min(3+count($allGroupsSorted),10),' style="width: 300px; text-align:left" ').'</div>');
|
||||||
|
/* KL 20061211 removed
|
||||||
$groups_select = '';
|
$groups_select = '';
|
||||||
$primary_group_select = '';
|
$primary_group_select = '';
|
||||||
reset($allGroups);
|
reset($allGroups);
|
||||||
@ -1284,9 +1305,9 @@
|
|||||||
$groups_select .= '<input type="checkbox" name="account_groups[]" value="' . $value['account_id'] . '"';
|
$groups_select .= '<input type="checkbox" name="account_groups[]" value="' . $value['account_id'] . '"';
|
||||||
for ($i=0; $i<count($userGroups); $i++)
|
for ($i=0; $i<count($userGroups); $i++)
|
||||||
{
|
{
|
||||||
/* print
|
// print
|
||||||
"Los1:".$userData["account_id"].$userGroups[$i]['account_id']." :
|
//"Los1:".$userData["account_id"].$userGroups[$i]['account_id']." :
|
||||||
".$value['account_id']."<br>"; */
|
//".$value['account_id']."<br>";
|
||||||
if (@$userGroups[$i]['account_id'] == $value['account_id'])
|
if (@$userGroups[$i]['account_id'] == $value['account_id'])
|
||||||
{
|
{
|
||||||
$groups_select .= ' checked';
|
$groups_select .= ' checked';
|
||||||
@ -1294,7 +1315,7 @@
|
|||||||
}
|
}
|
||||||
$groups_select .= '>' . $value['account_lid'] . "<br/>\n";
|
$groups_select .= '>' . $value['account_lid'] . "<br/>\n";
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
if (!$userData['account_primary_group'])
|
if (!$userData['account_primary_group'])
|
||||||
{
|
{
|
||||||
@ -1330,7 +1351,7 @@
|
|||||||
}
|
}
|
||||||
$checked = (@$userData['account_permissions'][$app] || @$db_perms[$app]) && $_account_id ? ' checked="1"' : '';
|
$checked = (@$userData['account_permissions'][$app] || @$db_perms[$app]) && $_account_id ? ' checked="1"' : '';
|
||||||
$part[$i&1] = sprintf('<td>%s</td><td><input type="checkbox" name="account_permissions[%s]" value="True"%s>',
|
$part[$i&1] = sprintf('<td>%s</td><td><input type="checkbox" name="account_permissions[%s]" value="True"%s>',
|
||||||
$data['title'],$app,$checked).
|
$data['title'],$app,$checked).
|
||||||
($this->apps_with_acl[$app] && $_account_id?'<a href="'.$GLOBALS['egw']->link('/index.php','menuaction=preferences.uiaclprefs.index&acl_app='.$app.'&owner='.$_account_id)
|
($this->apps_with_acl[$app] && $_account_id?'<a href="'.$GLOBALS['egw']->link('/index.php','menuaction=preferences.uiaclprefs.index&acl_app='.$app.'&owner='.$_account_id)
|
||||||
. '"><img src="'.$GLOBALS['egw']->common->image('phpgwapi','edit').'" border="0" hspace="3" align="absmiddle" title="'
|
. '"><img src="'.$GLOBALS['egw']->common->image('phpgwapi','edit').'" border="0" hspace="3" align="absmiddle" title="'
|
||||||
. lang('Grant Access').'"></a>':' ').'</td>';
|
. lang('Grant Access').'"></a>':' ').'</td>';
|
||||||
@ -1348,12 +1369,13 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
$var = Array(
|
$var = Array(
|
||||||
'groups_select'
|
// KL 20061211 groups_select is already set
|
||||||
=> '<div id="groupselector">' .
|
//'groups_select'
|
||||||
"\n".$groups_select. '</div>' . "\n",
|
//=> '<div id="groupselector">' .
|
||||||
|
//"\n".$groups_select. '</div>' . "\n",
|
||||||
'primary_group_select'
|
'primary_group_select'
|
||||||
=> '<select
|
=> '<select
|
||||||
name="account_primary_group">'."\n".$primary_group_select.'</
|
name="account_primary_group">'."\n".$primary_group_select.'</
|
||||||
select>'."\n",
|
select>'."\n",
|
||||||
'permissions_list'
|
'permissions_list'
|
||||||
=> $appRightsOutput,
|
=> $appRightsOutput,
|
||||||
@ -1365,9 +1387,9 @@
|
|||||||
$var = Array(
|
$var = Array(
|
||||||
'groups_select'
|
'groups_select'
|
||||||
=> '<select name="account_groups[]" multiple>'."\n".$groups_select.'</select>'."\n",
|
=> '<select name="account_groups[]" multiple>'."\n".$groups_select.'</select>'."\n",
|
||||||
'primary_group_select'
|
'primary_group_select'
|
||||||
=> '<select name="account_primary_group">'."\n".$primary_group_select.'</select>'."\n",
|
=> '<select name="account_primary_group">'."\n".$primary_group_select.'</select>'."\n",
|
||||||
'permissions_list'
|
'permissions_list'
|
||||||
=> $appRightsOutput,
|
=> $appRightsOutput,
|
||||||
'lang_app' => lang('application'),
|
'lang_app' => lang('application'),
|
||||||
'lang_acl' => lang('enabled').' / '.lang('ACL'),
|
'lang_acl' => lang('enabled').' / '.lang('ACL'),
|
||||||
@ -1400,7 +1422,7 @@
|
|||||||
}
|
}
|
||||||
return $response->getXML();
|
return $response->getXML();
|
||||||
}
|
}
|
||||||
|
|
||||||
function edit_group_managers($group_info,$_errors='')
|
function edit_group_managers($group_info,$_errors='')
|
||||||
{
|
{
|
||||||
if ($GLOBALS['egw']->acl->check('group_access',16,'admin'))
|
if ($GLOBALS['egw']->acl->check('group_access',16,'admin'))
|
||||||
@ -1459,4 +1481,4 @@
|
|||||||
$t->pfp('out','form');
|
$t->pfp('out','form');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
Loading…
Reference in New Issue
Block a user