/**
  * Removes a given group
  *
  * @param int $id - Identifier of the group to delete
  * @param boolean True if the deletion is successful
  **/
 function deleteGroup($group_id)
 {
     global $wpdb;
     if (!$group_id || !UserGroups_tp::getGroup($group_id)) {
         return false;
     }
     do_action('delete_group_rs', $group_id);
     wpp_cache_flush_group('all_usergroups');
     wpp_cache_flush_group('group_members');
     wpp_cache_flush_group('usergroups_for_user');
     wpp_cache_flush_group('usergroups_for_groups');
     wpp_cache_flush_group('usergroups_for_ug');
     // first delete all cache entries related to this group
     if ($group_members = ScoperAdminLib::get_group_members($group_id, COL_ID_RS)) {
         $id_in = "'" . implode("', '", $group_members) . "'";
         $any_user_roles = scoper_get_var("SELECT assignment_id FROM {$wpdb->user2role2object_rs} WHERE role_type = 'rs' AND user_id IN ({$id_in}) LIMIT 1");
         foreach ($group_members as $user_id) {
             wpp_cache_delete($user_id, 'group_membership_for_user');
         }
     }
     //if ( $got_blogrole = scoper_get_var("SELECT assignment_id FROM $wpdb->user2role2object_rs WHERE scope = 'blog' AND role_type = 'rs' AND group_id = '$group_id' LIMIT 1") ) {
     scoper_query("DELETE FROM {$wpdb->user2role2object_rs} WHERE scope = 'blog' AND role_type = 'rs' AND group_id = '{$group_id}'");
     scoper_flush_roles_cache(BLOG_SCOPE_RS, ROLE_BASIS_GROUPS);
     if ($any_user_roles) {
         scoper_flush_roles_cache(BLOG_SCOPE_RS, ROLE_BASIS_USER_AND_GROUPS, $group_members);
     }
     //}
     //if ( $got_taxonomyrole = scoper_get_var("SELECT assignment_id FROM $wpdb->user2role2object_rs WHERE scope = 'term' AND role_type = 'rs' AND group_id = '$group_id' LIMIT 1") ) {
     scoper_query("DELETE FROM {$wpdb->user2role2object_rs} WHERE scope = 'term' AND role_type = 'rs' AND group_id = '{$group_id}'");
     scoper_flush_roles_cache(TERM_SCOPE_RS, ROLE_BASIS_GROUPS);
     if ($any_user_roles) {
         scoper_flush_roles_cache(TERM_SCOPE_RS, ROLE_BASIS_USER_AND_GROUPS, $group_members);
     }
     //}
     //if ( $got_objectrole = scoper_get_var("SELECT assignment_id FROM $wpdb->user2role2object_rs WHERE scope = 'object' AND role_type = 'rs' AND group_id = '$group_id' LIMIT 1") ) {
     scoper_query("DELETE FROM {$wpdb->user2role2object_rs} WHERE scope = 'object' AND role_type = 'rs' AND group_id = '{$group_id}'");
     scoper_flush_roles_cache(OBJECT_SCOPE_RS, ROLE_BASIS_GROUPS);
     if ($any_user_roles) {
         scoper_flush_roles_cache(OBJECT_SCOPE_RS, ROLE_BASIS_USER_AND_GROUPS, $group_members);
     }
     //}
     //if ( $got_blogrole || $got_taxonomyrole || $got_objectrole ) {
     scoper_flush_results_cache(ROLE_BASIS_GROUPS);
     if ($any_user_roles) {
         scoper_flush_results_cache(ROLE_BASIS_USER_AND_GROUPS, $group_members);
     }
     //}
     $delete = "DELETE FROM {$wpdb->groups_rs} WHERE {$wpdb->groups_id_col}='{$group_id}'";
     scoper_query($delete);
     $delete = "DELETE FROM {$wpdb->user2group_rs} WHERE {$wpdb->user2group_gid_col}='{$group_id}'";
     scoper_query($delete);
     return true;
 }