function grp_update_member($id, $user_id, $perm)
{
    q('UPDATE phpgw_fud_group_members SET group_members_opt=' . $perm . ' WHERE group_id=' . $id . ' AND user_id=' . $user_id);
    grp_rebuild_cache(array($user_id));
}
                 $old =& $res[$edit];
             }
             group_sync($edit, isset($_POST['gr_name']) ? $_POST['gr_name'] : null, $gr_inherit_id, $perm, $permi);
             if (!$frm) {
                 q('DELETE FROM ' . $DBHOST_TBL_PREFIX . 'group_resources WHERE group_id=' . $edit);
                 $aff = db_affected();
                 if ($gr_resource) {
                     foreach ($gr_resource as $v) {
                         q('INSERT INTO ' . $DBHOST_TBL_PREFIX . 'group_resources (resource_id, group_id) VALUES(' . (int) $v . ', ' . $edit . ')');
                     }
                 }
             }
             /* only rebuild caches if the permissions or number of resources had changed. */
             if ($perm != $old->groups_opt || $permi != $old->groups_opti || $aff != count($gr_resource)) {
                 rebuild_group_ih($edit, $perm ^ $old->groups_opt, $perm);
                 grp_rebuild_cache();
             }
         }
     }
 }
 /* restore form values */
 if ($error) {
     $gr_name = !empty($_POST['gr_name']) ? $_POST['gr_name'] : '';
     $gr_resource = array();
     if (isset($_POST['gr_resource']) && is_array($_POST['gr_resource'])) {
         foreach ($_POST['gr_resource'] as $v) {
             $gr_resource[$v] = $v;
         }
     }
 } else {
     $edit = 0;
        switch ($cnt = db_count($c)) {
            case 0:
                $error = 'Could not find a user who matches the "' . $srch . '" login mask';
                break;
            case 1:
                $r = db_rowarr($c);
                if (__dbtype__ == 'mysql') {
                    q('REPLACE INTO ' . $DBHOST_TBL_PREFIX . 'group_members (group_id, user_id, group_members_opt) SELECT id, ' . $r[0] . ', groups_opt|65536|131072 FROM ' . $DBHOST_TBL_PREFIX . 'groups WHERE id=' . $group_id);
                } else {
                    $opt = q_singleval('groups_opt|65536|131072 FROM ' . $DBHOST_TBL_PREFIX . 'groups WHERE id=' . $group_id);
                    if (!db_li('INSERT INTO ' . $DBHOST_TBL_PREFIX . 'group_members (group_id, user_id, group_members_opt) SELECT id, ' . $r[0] . ', groups_opt|65536|131072 FROM ' . $DBHOST_TBL_PREFIX . 'groups WHERE id=' . $group_id)) {
                        q("UPDATE {SQL_TABLE_PREFIX}group_members SET group_members_opt=" . $opt . " WHERE user_id=" . $r[0] . " AND group_id=" . $group_id);
                    }
                }
                rebuild_group_ldr_cache($r[0]);
                grp_rebuild_cache(array($r[0]));
                $gr_leader = '';
                break;
            default:
                /* more then 1 user found, draw a selection form */
                echo '<html><body bgcolor="#ffffff">There are ' . $cnt . ' users matching your search mask:<br><table border=0 cellspacing=0 cellpadding=3>';
                while ($r = db_rowarr($c)) {
                    echo '<tr><td><a href="admgrouplead.php?gr_leader=' . urlencode($r[1]) . '&group_id=' . $group_id . '&' . _rsidl . '">' . $r[1] . '</a></td></tr>';
                }
                unset($c);
                echo '</table></body></html>';
                exit;
        }
        unset($c);
    }
}