How to alter the query that selects node in the admin/content page i need to alter the list of nodes displayed in the admin/content page (the basic administrative page for content) depending of the role of the user. For example if the user has a role, i want him to display only pages with content type = article.

I thought i could modify the query using hook_query_alter

function provintegra_query_alter(QueryAlterableInterface $query){
    fb($query);
}


but i was wondering on how to add the condition i need and how to find the correct query to modify. Of course other solutions arre accepted, but i can't use views because i need to have a page that it's exactly like the one that is displayed normally (with the same filters and links for editing). I need to restrict visualization to certain content types (articles for example but also user defined content types) and if possible to content created by the user
I had this issue in Drupal 6 just now, on the "/admin/content/node" overview page.  I wanted to hide certain content types -- and you can't do that with views per se because the admin page is a form, where you can easily bulk update.  Sorry that I'm not putting a D7 answer -- this may not be exactly what you are looking for, but it works for me in 6, and maybe others will find it helpful:

/**
 * hide child content types from /admin/content/node overview
 */
function [your module]_db_rewrite_sql($query, $primary_table, $primary_field, $args){
    if(arg(0)=='admin'&amp;&amp;arg(1)=='content'&amp;&amp;arg(2)=='node'){ // /admin/content/node page
        if($primary_table=='n' &amp;&amp; $primary_field == 'nid'){
            if(!user_access("[your access callback for viewing this type]")){
                  $return['where'] = 'type != "[type to hide machine name]"'; // or you could use type == type_name
                  return $return;
            }
        }
    }
}


again.. that's D6, so I'm sorry but hopefully that will get you started