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); } }