This module allows you to configure multiple types of prerequisite requirements for events. There are options to require the user have a non-negative participation status for a type of event or be a member of a Drupal role. With both those options you can configure the event to either require ALL of the prerequisite or AT LEAST ONE event type or role.
Currently the module only reports on users who are registered for the event without the prerequisites. Future releases of CiviCRM Multiday Event will remove the registration option and show a message explaining to the user which prerequisites they are missing with a list of when that type of event will be offered.
I'll add documentation for enforcing prerequisites on CiviCRM side by modifying the event template, but I'd like to find a less "hackish" way of doing that. If you have more experience with the controlling access in CiviCRM, patches are welcome.