I can only help you with the first question and even then, it might not be what you're looking for.
Create a new field that is not editable by the user. For all of those users you want to be able to read the posts in this particular forum, put the word "Allowed" (without the quote) in the new field you created.
Open up showthread.php
PHP Code:
// USER SPECIFIC CODE VIEW
if ($thread['forumid'] == xx) {
if ($bbuserinfo['fieldxx'] != "Allowed")
{
eval("standarderror(\"".gettemplate("error_notenouoghposts")."\");");
}
}
// END
Create a new template called error_notenouoghposts and in it, put
You do not have access to read the posts in this particular forum.
Replace ['forumid'] == xx with the # for that particular forum.
Replace fieldxx with the # of the particular new field you just created.
Everyone will be able to enter the forum but only those with the "Allowed" field will be able to read the posts in that forum.
Syl...