mirror of https://github.com/jumpserver/jumpserver
				
				
				
			
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
# -*- 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')
 |