# Functions
NewGroupCollection returns a pointer to a new empty GroupCollection.
# Constants
The four Permissions are Read, Write, Unlink and All.
GroupAdminID is the string ID of the group with all permissions.
GroupEveryoneID is the string ID of the group everyone belongs to.
InheritedGroup means that this user is a member of this group through inheritance.
NativeGroup means that this user has been explicitly given membership in this group.
The four Permissions are Read, Write, Unlink and All.
SuperUserID is the uid of the administrator.
The four Permissions are Read, Write, Unlink and All.
The four Permissions are Read, Write, Unlink and All.
# Variables
AuthenticationRegistry is the authentication registry of the application.
GroupAdmin which has all permissions.
GroupEveryone is a group that all users automatically belong to.
Registry of all security groups of the application.
# Structs
An AuthBackendRegistry holds an ordered list of AuthBackend instances that enables authentication against several backends.
A Group defines a role which can be granted or denied permissions.
A GroupCollection keeps a list of groups.
# Interfaces
An AuthBackend is an interface that is capable of authenticating a user and tell whether a user is a member of a given group.
# Type aliases
InheritanceInfo enables us to know if a user is part of a group natively or by inheritance.
A InvalidCredentialsError should be returned by backends when the user is known to this backend but cannot be authenticated.
A Permission defines which of the read, write or unlink rights apply.
A UserNotFoundError should be returned by backends when the user is not known.