mirror of https://github.com/jumpserver/jumpserver
perf: 优化MFA verify requierd
parent
4a9e83ba15
commit
d1a005f750
|
@ -10,10 +10,10 @@ from common.permissions import IsOrgAdminOrAppUser, NeedMFAVerify
|
||||||
from common.utils import get_object_or_none, get_logger
|
from common.utils import get_object_or_none, get_logger
|
||||||
from common.mixins import CommonApiMixin
|
from common.mixins import CommonApiMixin
|
||||||
from ..backends import AssetUserManager
|
from ..backends import AssetUserManager
|
||||||
from ..models import Asset, Node, SystemUser
|
from ..models import Node
|
||||||
from .. import serializers
|
from .. import serializers
|
||||||
from ..tasks import (
|
from ..tasks import (
|
||||||
test_asset_users_connectivity_manual, push_system_user_a_asset_manual
|
test_asset_users_connectivity_manual
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -100,12 +100,6 @@ class AssetUserViewSet(CommonApiMixin, BulkModelViewSet):
|
||||||
obj = queryset.get(id=pk)
|
obj = queryset.get(id=pk)
|
||||||
return obj
|
return obj
|
||||||
|
|
||||||
def get_exception_handler(self):
|
|
||||||
def handler(e, context):
|
|
||||||
logger.error(e, exc_info=True)
|
|
||||||
return Response({"error": str(e)}, status=400)
|
|
||||||
return handler
|
|
||||||
|
|
||||||
def perform_destroy(self, instance):
|
def perform_destroy(self, instance):
|
||||||
manager = AssetUserManager()
|
manager = AssetUserManager()
|
||||||
manager.delete(instance)
|
manager.delete(instance)
|
||||||
|
|
|
@ -39,3 +39,9 @@ class ReferencedByOthers(JMSException):
|
||||||
status_code = status.HTTP_400_BAD_REQUEST
|
status_code = status.HTTP_400_BAD_REQUEST
|
||||||
default_code = 'referenced_by_others'
|
default_code = 'referenced_by_others'
|
||||||
default_detail = _('Is referenced by other objects and cannot be deleted')
|
default_detail = _('Is referenced by other objects and cannot be deleted')
|
||||||
|
|
||||||
|
|
||||||
|
class MFAVerifyRequired(JMSException):
|
||||||
|
status_code = status.HTTP_400_BAD_REQUEST
|
||||||
|
default_code = 'mfa_verify_required'
|
||||||
|
default_detail = _('This action require verify your MFA')
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
import time
|
import time
|
||||||
from rest_framework import permissions
|
from rest_framework import permissions
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
from common.exceptions import MFAVerifyRequired
|
||||||
|
|
||||||
from orgs.utils import current_org
|
from orgs.utils import current_org
|
||||||
|
|
||||||
|
@ -114,7 +115,7 @@ class NeedMFAVerify(permissions.BasePermission):
|
||||||
mfa_verify_time = request.session.get('MFA_VERIFY_TIME', 0)
|
mfa_verify_time = request.session.get('MFA_VERIFY_TIME', 0)
|
||||||
if time.time() - mfa_verify_time < settings.SECURITY_MFA_VERIFY_TTL:
|
if time.time() - mfa_verify_time < settings.SECURITY_MFA_VERIFY_TTL:
|
||||||
return True
|
return True
|
||||||
return False
|
raise MFAVerifyRequired()
|
||||||
|
|
||||||
|
|
||||||
class CanUpdateDeleteUser(permissions.BasePermission):
|
class CanUpdateDeleteUser(permissions.BasePermission):
|
||||||
|
|
Loading…
Reference in New Issue