mirror of
https://github.com/jumpserver/jumpserver.git
synced 2026-01-04 23:24:19 +00:00
[Update] 更改查看认证需要的MFA时间间隔
This commit is contained in:
@@ -10,7 +10,7 @@ from rest_framework import filters
|
||||
from rest_framework_bulk import BulkModelViewSet
|
||||
from django.shortcuts import get_object_or_404
|
||||
|
||||
from common.permissions import IsOrgAdminOrAppUser
|
||||
from common.permissions import IsOrgAdminOrAppUser, NeedMFAVerify
|
||||
from common.utils import get_object_or_none, get_logger
|
||||
from common.mixins import IDInCacheFilterMixin
|
||||
from ..backends import AssetUserManager
|
||||
@@ -57,7 +57,7 @@ class AssetUserSearchBackend(filters.BaseFilterBackend):
|
||||
class AssetUserViewSet(IDInCacheFilterMixin, BulkModelViewSet):
|
||||
pagination_class = LimitOffsetPagination
|
||||
serializer_class = serializers.AssetUserSerializer
|
||||
permission_classes = (IsOrgAdminOrAppUser, )
|
||||
permission_classes = [IsOrgAdminOrAppUser]
|
||||
http_method_names = ['get', 'post']
|
||||
filter_fields = [
|
||||
"id", "ip", "hostname", "username", "asset_id", "node_id",
|
||||
@@ -111,22 +111,16 @@ class AssetUserExportViewSet(AssetUserViewSet):
|
||||
serializer_class = serializers.AssetUserExportSerializer
|
||||
http_method_names = ['get']
|
||||
|
||||
def list(self, request, *args, **kwargs):
|
||||
otp_last_verify = request.session.get("OTP_LAST_VERIFY_TIME")
|
||||
if not otp_last_verify or time.time() - int(otp_last_verify) > 600:
|
||||
return Response({"error": "Need MFA confirm mfa auth"}, status=403)
|
||||
return super().list(request, *args, **kwargs)
|
||||
def get_permissions(self):
|
||||
self.permission_classes.append(NeedMFAVerify)
|
||||
return super().get_permissions()
|
||||
|
||||
|
||||
class AssetUserAuthInfoApi(generics.RetrieveAPIView):
|
||||
serializer_class = serializers.AssetUserAuthInfoSerializer
|
||||
permission_classes = (IsOrgAdminOrAppUser,)
|
||||
permission_classes = [IsOrgAdminOrAppUser, NeedMFAVerify]
|
||||
|
||||
def retrieve(self, request, *args, **kwargs):
|
||||
otp_last_verify = request.session.get("OTP_LAST_VERIFY_TIME")
|
||||
if not otp_last_verify or time.time() - int(otp_last_verify) > 600:
|
||||
return Response({"error": "Need MFA confirm mfa auth"}, status=403)
|
||||
|
||||
instance = self.get_object()
|
||||
serializer = self.get_serializer(instance)
|
||||
status_code = status.HTTP_200_OK
|
||||
|
||||
@@ -32,8 +32,9 @@ var assetUserListUrl = "{% url "api-assets:asset-user-list" %}";
|
||||
var assetUserTable;
|
||||
var needPush = false;
|
||||
var prefer = null;
|
||||
var lastMFATime = "{{ request.session.OTP_LAST_VERIFY_TIME }}";
|
||||
var lastMFATime = "{{ request.session.MFA_VERIFY_TIME }}";
|
||||
var testDatetime = "{% trans 'Test datetime: ' %}";
|
||||
var mfaVerifyTTL = "{{ SECURITY_MFA_VERIFY_TTL }}";
|
||||
|
||||
function initAssetUserTable() {
|
||||
var options = {
|
||||
@@ -109,7 +110,7 @@ $(document).ready(function(){
|
||||
authUsername = $(this).data('user');
|
||||
var now = new Date();
|
||||
var nowTime = now.getTime() / 1000;
|
||||
if ( !lastMFATime || nowTime - lastMFATime > 60*10 ) {
|
||||
if ( !lastMFATime || nowTime - lastMFATime > mfaVerifyTTL ) {
|
||||
mfaFor = "viewAuth";
|
||||
$("#mfa_auth_confirm").modal("show");
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user