node_access by specific role?
This is what I ended up using, it could probably be optimized a bit but it works.

&lt;?php
if ($node = menu_get_object()) {
  // Get the nid
  $currentNode = $node-&gt;nid;
}
if (in_array("Gold Member", $user-&gt;roles)) {
    echo '&lt;div id="title"&gt;&lt;h1 class="title display"&gt;Free Courses for Gold Members&lt;/h1&gt;&lt;/div&gt;';

    echo '&lt;ul class="course_page_ul"&gt;';
        $role_type = 'Gold Member';// Texas Member
        $getRole = db_query("SELECT rid FROM role WHERE name = '%s'",$role_type);
        while ($roleid = db_fetch_object ($getRole)) {
          $roleids[] = $roleid;
        }   
        //Get the ID of the role type we are using from the array
        foreach($roleids as $roleId){
            $role_id = $roleId-&gt;rid;
        }

        $node_type = "page";
        $result = db_query("SELECT * FROM node WHERE type = '%s'", $node_type);
        $nids = array();
        while ($obj = db_fetch_object ($result)) {
          $nids[] = $obj;
        }

        $idsToInclude = array();
        foreach ($nids as $pageId) {
            $page_id = $pageId-&gt;nid;
            $realm = 'content_access_rid';// content access
            $grant_view = 1; // Has view
            $result = db_query("SELECT * FROM node_access WHERE nid != '%d' and nid = '%d' and gid = '%d' and realm = '%s' and grant_view = '%d'",$currentNode, $page_id, $role_id, $realm, $grant_view);

            while ($obj = db_fetch_object ($result)) {
              $idsToInclude[] = $obj;
            }           
        }

        //var_dump($user-&gt;uid);
        //var_dump($nids);

        foreach($idsToInclude as $id){
            $courses = $id-&gt;nid;
            $nodeid = node_load($courses );
            if(node_access('view', $nodeid, $user)){ 
                echo '&lt;li class="course_link"&gt;&lt;a href="/node/'.$courses .'" title=""&gt;'.$nodeid-&gt;title.'&lt;/a&gt;&lt;/li&gt;'; 
            }
        } 
    echo '&lt;/ul&gt;';
}

?&gt;