If you can identify a condition, you can "mask" a dashboard by popping something over it that precludes the user from seeing it.
In the attached I have a simple example where the parameter value on dashboard 1 controls whether the user can see dashboard 2. Play with it. you'll see what I mean. If you get the "go away" message, it's actually an entire sheet. Usually the message I use says, "You don't have access here. Click here to go back to main menu..." (Or something to that effect), and I put a SELECT action on that sheet to return the user to the first menu. (That action is in this example too.)
I use this technique in multiple places to hide or show a dashboard (or limited sets of objects within a dashboard) based on the GROUP of the user.
The key to making this work is a technique I call object popping. You can hide a sheet or other object in negative space on a dashboard, and when a certain condition occurs a pop-out sheet expands and pushes the object into view on the dashboard. So in the case of the example I attached, the "masking" sheet lives outside the visible boundaries of the dashboard, but when the right condition occurs the pop-out sheet pushes it into view, blocking access to the whole dashboard (in this case.)
Hide Dashboard.twbx 995.9 KB
It also looks like there could be potential workaround(s) for opening the workbook and printing a pdf using Tableau:
Community Thread: Automate pdf generation using Tableau Desktop
Is there a place I can suggest or vote on software enhancements?
They are already talking about stuff like that in this thread:
DEV is asking for input. Read through and I think there is already talk about hiding whole dashboards conditionally.