Make a view content only appear when user is logged in In Drupal 7, I need to create a view of member-only nodes. They're all of a certain type. This type—and I've already set that up with role-based access control—can only be seen by logged in users.

Now, I can create a view called Member Area that shows these nodes, and make it accessible only to logged in users (through the View access control), but when I create a menu entry for that view, the link obviously disappears when the user isn't logged in.

What I need is a link that points to a "please log in" text (could be on a static page, whatever) when the user isn't logged in. If the user then logs in, I want to display the view which shows only the restricted content.

Giving a specific example, I currently have this. The block is conditionally shown in the sidebar only on the page called Member Area. The page displays the static You are not logged in… text.



Once the user logs in, I want to show them the view of restricted content:



The horrible kludge that I use now is that I link the user to another view in the user menu, but that's really bad UX.

Can I set this up somehow?
What I did was quite simple:


Create the view normally, without access restrictions and link it to the menu.
Make sure the nodes themselves can only be seen by logged in users.
Create a No results behavior text that tells users to log in.
Show the login block only on the view's page.