Currently, Program Manager only shows programs in the dashboard the requesting user has write access to.
The Program Manager should be modified to also display the Programs (and the appropriate buttons) that the requesting user has read access to.
There is an open question about how to treat buttons for actions that a user does not have access to in a program.
One option is to display them but visually gray them out and disable them.
Another option is to remove them entirely.
Come up with a mock-up and consult with Experience.