Implement a proper way to do action when an event occured

This implementation provide a proper way to enable or disable action
when an event occured.
An action has a permission for skipping.