Classes

Role is a simple implementation of a RoleInterface where the role is a string.
RoleHierarchy defines a role hierarchy.
SwitchUserRole is used when the current user temporarily impersonates another one.

Interfaces

RoleHierarchyInterface is the interface for a role hierarchy.
RoleInterface represents a role granted to a user.