This event is raised before a user or group are granted a permission. This event is synchronous,
allowing listeners to perform operations in the same database transaction where the permission is granted.
This event is
cancelable. A listener may prevent the permission
from being granted by
canceling this event.
Throwing an exception will not prevent the permission from being granted;
the exception will be logged and ignored.