"""Authorisation exceptions"""
class AuthorisationError(Exception):
"""
Top-level exception for the `gn3.auth.authorisation` package.
All exceptions in this package should inherit from this class.
"""
error_code: int = 400
class ForbiddenAccess(AuthorisationError):
"""Raised for forbidden access."""
error_code: int = 403
class UserRegistrationError(AuthorisationError):
"""Raised whenever a user registration fails"""
class NotFoundError(AuthorisationError):
"""Raised whenever we try fetching (a/an) object(s) that do(es) not exist."""
error_code: int = 404
class InvalidData(AuthorisationError):
"""
Exception if user requests invalid data
"""
error_code: int = 400
class InconsistencyError(AuthorisationError):
"""
Exception raised due to data inconsistencies
"""
error_code: int = 500
class PasswordError(AuthorisationError):
"""
Raise in case of an error with passwords.
"""
class UsernameError(AuthorisationError):
"""
Raise in case of an error with a user's name.
"""