mirror of https://github.com/jumpserver/jumpserver
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.7 KiB
56 lines
1.7 KiB
# -*- coding: utf-8 -*- |
|
# |
|
from django.utils.translation import gettext_lazy as _ |
|
from rest_framework.exceptions import APIException |
|
from rest_framework import status |
|
|
|
|
|
class JMSException(APIException): |
|
status_code = status.HTTP_400_BAD_REQUEST |
|
|
|
|
|
class JMSObjectDoesNotExist(APIException): |
|
status_code = status.HTTP_404_NOT_FOUND |
|
default_code = 'object_does_not_exist' |
|
default_detail = _('%s object does not exist.') |
|
|
|
def __init__(self, detail=None, code=None, object_name=None): |
|
if detail is None and object_name: |
|
detail = self.default_detail % object_name |
|
super(JMSObjectDoesNotExist, self).__init__(detail=detail, code=code) |
|
|
|
|
|
class SomeoneIsDoingThis(JMSException): |
|
status_code = status.HTTP_409_CONFLICT |
|
default_detail = _('Someone else is doing this. Please wait for complete') |
|
|
|
|
|
class Timeout(JMSException): |
|
status_code = status.HTTP_408_REQUEST_TIMEOUT |
|
default_detail = _('Your request timeout') |
|
|
|
|
|
class M2MReverseNotAllowed(JMSException): |
|
status_code = status.HTTP_400_BAD_REQUEST |
|
default_detail = _('M2M reverse not allowed') |
|
|
|
|
|
class ReferencedByOthers(JMSException): |
|
status_code = status.HTTP_400_BAD_REQUEST |
|
default_code = 'referenced_by_others' |
|
default_detail = _('Is referenced by other objects and cannot be deleted') |
|
|
|
|
|
class UserConfirmRequired(JMSException): |
|
def __init__(self, code=None): |
|
detail = { |
|
'code': code, |
|
'detail': _('This action require confirm current user') |
|
} |
|
super().__init__(detail=detail, code=code) |
|
|
|
|
|
class UnexpectError(JMSException): |
|
status_code = status.HTTP_500_INTERNAL_SERVER_ERROR |
|
default_code = 'unexpect_error' |
|
default_detail = _('Unexpect error occur')
|
|
|