q('UPDATE phpgw_fud_group_members SET group_members_opt=' . $perm . ' WHERE id=' . (int) $_POST['edit']);
            grp_rebuild_cache(array($usr_id));
        }
    }
    if (!$login_error) {
        unset($_POST);
        $gr_member = '';
    }
}
if (isset($_GET['del']) && ($del = (int) $_GET['del']) && $group_id) {
    $is_gl = q_singleval("SELECT user_id FROM phpgw_fud_group_members WHERE group_id=" . $group_id . " AND user_id=" . $del . " AND group_members_opt>=131072 AND (group_members_opt & 131072) > 0");
    grp_delete_member($group_id, $del);
    /* if the user was a group moderator, rebuild moderation cache */
    if ($is_gl) {
        fud_use('groups_adm.inc', true);
        rebuild_group_ldr_cache($del);
    }
}
$edit = 0;
if (isset($_GET['edit']) && ($edit = (int) $_GET['edit'])) {
    if (!($mbr = db_sab('SELECT gm.*, u.alias FROM phpgw_fud_group_members gm LEFT JOIN phpgw_fud_users u ON u.id=gm.user_id WHERE gm.group_id=' . $group_id . ' AND gm.id=' . $edit))) {
        invl_inp_err();
    }
    if ($mbr->user_id == 0) {
        $gr_member = '<font class="anon">Anonimo</font>';
    } else {
        if ($mbr->user_id == '2147483647') {
            $gr_member = '<font class="reg">Tutti gli utenti registrati</font>';
        } else {
            $gr_member = $mbr->alias;
        }
    // make group based on 'primary' 1st group
    $fld_lst = implode(',', $GLOBALS['__GROUPS_INC']['permlist']);
    $anon = "'" . implode("', '", db_arr_assoc('SELECT ' . $fld_lst . ' FROM ' . $tbl . 'groups WHERE id=1')) . "'";
    $regu = "'" . implode("', '", db_arr_assoc('SELECT ' . $fld_lst . ' FROM ' . $tbl . 'groups WHERE id=2')) . "'";
    $fld_lst = str_replace('p_', 'up_', $fld_lst);
    foreach ($glm as $k => $v) {
        foreach ($v as $uid) {
            q('INSERT INTO ' . $tbl . 'group_members (group_id, user_id, ' . $fld_lst . ') VALUES (' . $k . ', ' . $uid . ', ' . (!$uid ? $anon : $regu) . ')');
        }
    }
}
draw_stat('Done: Validating group/primary user relations');
draw_stat('Rebuilding group leader cache');
$c = q('SELECT DISTINCT(user_id) FROM ' . $tbl . 'group_members WHERE group_members_opt>=131072 AND (group_members_opt & 131072) > 0');
while ($r = db_rowarr($c)) {
    rebuild_group_ldr_cache($r[0]);
}
unset($c);
draw_stat('Done: Rebuilding group leader cache');
draw_stat('Rebuilding group cache');
grp_rebuild_cache();
draw_stat('Done: Rebuilding group cache');
draw_stat('Validating User/Theme Relations');
$te = array();
$c = uq('SELECT u.id FROM ' . $tbl . 'users u LEFT JOIN ' . $tbl . 'themes thm ON thm.id=u.theme WHERE thm.id IS NULL');
while (list($uid) = db_rowarr($c)) {
    $te[] = $uid;
}
if ($te) {
    $tid = q_singleval('SELECT id FROM ' . $tbl . 'themes WHERE theme_opt=3');
    q('UPDATE ' . $tbl . 'users SET theme=' . $tid . ' WHERE id IN(' . implode(',', $te) . ')');