You could try the Members plugin to restrict access to certain pages, very handy.
In the menu section you can check if user is logged in, and show extra menu items if logged in by adding code similar to this in your template
if ( is_user_logged_in() ) {
wp_nav_menu( array( 'theme_location' => 'logged-in-menu' ) ); /* logged in menu is a separate menu */
global $current_user;
get_currentuserinfo();
?>
<div id="userinfo">
<p>Logged in as:</p>
<p>
<?php echo ($current_user->user_firstname.' '.$current_user->user_lastname); ?>
</p>
<div class="b_logout"><a href="https://wordpress.stackexchange.com/questions/35494/<?php echo wp_logout_url(home_url()); ?>">Log out</a></div>
</div>
<?php
} else { ?>
<div id="b_login">
<ul><li><a href="http://wordpress.stackexchange.com/login">Log in</a></li></ul>
</div>
<?php } /* end if user logged in */ ?>