diff options
author | Neil Johnson <neil@matrix.org> | 2018-08-16 18:02:02 +0100 |
---|---|---|
committer | Neil Johnson <neil@matrix.org> | 2018-08-16 18:02:02 +0100 |
commit | 13ad9930c8799ea54671a6ce00533528d89e061b (patch) | |
tree | 1633a590e06bc0c42c4d438918b5d1bf3a4c476a /synapse/api/errors.py | |
parent | Add GET media/v1/config (#3184) (diff) | |
download | synapse-13ad9930c8799ea54671a6ce00533528d89e061b.tar.xz |
add new error type ResourceLimit
Diffstat (limited to 'synapse/api/errors.py')
-rw-r--r-- | synapse/api/errors.py | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/synapse/api/errors.py b/synapse/api/errors.py index 08f0cb5554..e26001ab12 100644 --- a/synapse/api/errors.py +++ b/synapse/api/errors.py @@ -224,15 +224,34 @@ class NotFoundError(SynapseError): class AuthError(SynapseError): """An error raised when there was a problem authorising an event.""" - def __init__(self, code, msg, errcode=Codes.FORBIDDEN, admin_uri=None): + + def __init__(self, *args, **kwargs): + if "errcode" not in kwargs: + kwargs["errcode"] = Codes.FORBIDDEN + super(AuthError, self).__init__(*args, **kwargs) + + +class ResourceLimitError(SynapseError): + """ + Any error raised when there is a problem with resource usage. + For instance, the monthly active user limit for the server has been exceeded + """ + def __init__( + self, code, msg, + errcode=Codes.RESOURCE_LIMIT_EXCEED, + admin_uri=None, + limit_type=None, + ): self.admin_uri = admin_uri - super(AuthError, self).__init__(code, msg, errcode=errcode) + self.limit_type = limit_type + super(ResourceLimitError, self).__init__(code, msg, errcode=errcode) def error_dict(self): return cs_error( self.msg, self.errcode, admin_uri=self.admin_uri, + limit_type=self.limit_type ) |