Trait for classes which require a user to work with.
Interface to be implemented by classes depending on a current user.
Interface defining a factory which can create User objects
User class. Handles all application interaction with a user
Default factory for creating User objects
Authorisation helper class, provides static methods to perform various tasks relevant to the Joomla user and authorisation classes