salve, come da titolo come faccio ad visualizzare il contenuto quando l'utente non è amministratore ma e moderatore e deve solo vedere la sua roba?

esempio:
utente1 = moderatore -> visualizza solo i suoi contenuti.
admin=amministratore->visualizza tutto.

per ora ho questo codice:
codice:
    $query = "SELECT post_categories.title as _title, users.username as _username, post.*, DATE_FORMAT(post.data_reg,'%d/%m/%Y ore %H:%i') as 'data_it' FROM users        INNER JOIN post 
          ON users.id = post.id_users INNER JOIN post_categories 
          ON post_categories.id = post.id_categories ";


    $id_users = $_SESSION["id_users"];


    if(!empty($_GET['cat'])) {
              $query.="WHERE id_categories=".$by_cat."   ORDER BY data_reg DESC ";
              $config = $admin_news_order_by_categories;
    }elseif(!empty($_GET['user'])){
              $query.="WHERE post.id_users=".$by_user."  ORDER BY data_reg DESC";
              $config = $admin_news_order_by_users;
    }elseif(!empty($_GET['a']) && $_GET['a']=='trash'){ 
              $query.="WHERE post.active=4  ORDER BY  data_reg DESC "; 
              $config = $admin_news_trash;  
    }elseif(!empty($_GET['a']) && $_GET['a']=='hidden'){ 
              $query.="WHERE post.active=2   ORDER BY data_reg DESC "; 
              $config = $admin_news_hidden; 
    }elseif(!empty($_GET['a']) && $_GET['a']=='preview'){ 
              $query.="WHERE post.active=5  ORDER BY data_reg DESC "; 
              $config = $admin_news_preview; 
    }else
    {
            $query.="WHERE post.active=1 and id_users=".$id_users." ORDER BY data_reg DESC ";
            $config = $admin_news_all; 
    }
ho provato usare con un where, ma non funziona.
codice:
$query.="WHERE post.active=1 and id_users=".$id_users." ORDER BY data_reg DESC ";
come si può realizzare la cosa?

grazie mille.