mirror of https://github.com/jumpserver/jumpserver
[Update] 修改查看auth info可以关闭mfa
parent
6ebe8e16bd
commit
a2f8f43321
|
@ -7,6 +7,7 @@ from rest_framework import filters
|
||||||
from rest_framework_bulk import BulkModelViewSet
|
from rest_framework_bulk import BulkModelViewSet
|
||||||
from django.shortcuts import get_object_or_404
|
from django.shortcuts import get_object_or_404
|
||||||
from django.http import Http404
|
from django.http import Http404
|
||||||
|
from django.conf import settings
|
||||||
|
|
||||||
from common.permissions import IsOrgAdminOrAppUser, NeedMFAVerify
|
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
|
||||||
|
@ -110,12 +111,22 @@ class AssetUserViewSet(CommonApiMixin, BulkModelViewSet):
|
||||||
class AssetUserExportViewSet(AssetUserViewSet):
|
class AssetUserExportViewSet(AssetUserViewSet):
|
||||||
serializer_class = serializers.AssetUserExportSerializer
|
serializer_class = serializers.AssetUserExportSerializer
|
||||||
http_method_names = ['get']
|
http_method_names = ['get']
|
||||||
permission_classes = [IsOrgAdminOrAppUser, NeedMFAVerify]
|
permission_classes = [IsOrgAdminOrAppUser]
|
||||||
|
|
||||||
|
def get_permissions(self):
|
||||||
|
if settings.CONFIG.SECURITY_VIEW_AUTH_NEED_MFA:
|
||||||
|
self.permission_classes = [IsOrgAdminOrAppUser, NeedMFAVerify]
|
||||||
|
return super().get_permissions()
|
||||||
|
|
||||||
|
|
||||||
class AssetUserAuthInfoApi(generics.RetrieveAPIView):
|
class AssetUserAuthInfoApi(generics.RetrieveAPIView):
|
||||||
serializer_class = serializers.AssetUserAuthInfoSerializer
|
serializer_class = serializers.AssetUserAuthInfoSerializer
|
||||||
permission_classes = [IsOrgAdminOrAppUser, NeedMFAVerify]
|
permission_classes = [IsOrgAdminOrAppUser]
|
||||||
|
|
||||||
|
def get_permissions(self):
|
||||||
|
if settings.CONFIG.SECURITY_VIEW_AUTH_NEED_MFA:
|
||||||
|
self.permission_classes = [IsOrgAdminOrAppUser, NeedMFAVerify]
|
||||||
|
return super().get_permissions()
|
||||||
|
|
||||||
def get_object(self):
|
def get_object(self):
|
||||||
query_params = self.request.query_params
|
query_params = self.request.query_params
|
||||||
|
|
|
@ -41,8 +41,8 @@ class AssetUserManager:
|
||||||
instances_map = {}
|
instances_map = {}
|
||||||
instances = []
|
instances = []
|
||||||
for name, backend in self.backends:
|
for name, backend in self.backends:
|
||||||
if name != "db" and self._prefer != name:
|
# if name != "db":
|
||||||
continue
|
# continue
|
||||||
_instances = backend.filter(
|
_instances = backend.filter(
|
||||||
username=username, assets=assets, latest=latest,
|
username=username, assets=assets, latest=latest,
|
||||||
prefer=self._prefer, prefer_id=prefer_id,
|
prefer=self._prefer, prefer_id=prefer_id,
|
||||||
|
|
|
@ -40,6 +40,7 @@ var prefer = null;
|
||||||
var lastMFATime = "{{ request.session.MFA_VERIFY_TIME }}";
|
var lastMFATime = "{{ request.session.MFA_VERIFY_TIME }}";
|
||||||
var testDatetime = "{% trans 'Test datetime: ' %}";
|
var testDatetime = "{% trans 'Test datetime: ' %}";
|
||||||
var mfaVerifyTTL = "{{ SECURITY_MFA_VERIFY_TTL }}";
|
var mfaVerifyTTL = "{{ SECURITY_MFA_VERIFY_TTL }}";
|
||||||
|
var mfaNeedCheck = "{{ SECURITY_VIEW_AUTH_NEED_MFA }}";
|
||||||
|
|
||||||
function initAssetUserTable() {
|
function initAssetUserTable() {
|
||||||
var options = {
|
var options = {
|
||||||
|
@ -112,6 +113,10 @@ $(document).ready(function(){
|
||||||
authAssetId = $(this).data("asset") ;
|
authAssetId = $(this).data("asset") ;
|
||||||
authHostname = $(this).data("hostname");
|
authHostname = $(this).data("hostname");
|
||||||
authUsername = $(this).data('user');
|
authUsername = $(this).data('user');
|
||||||
|
if (mfaNeedCheck !== 'True') {
|
||||||
|
$("#asset_user_auth_view").modal('show');
|
||||||
|
return
|
||||||
|
}
|
||||||
var now = new Date();
|
var now = new Date();
|
||||||
var nowTime = now.getTime() / 1000;
|
var nowTime = now.getTime() / 1000;
|
||||||
if ( !lastMFATime || nowTime - lastMFATime > mfaVerifyTTL ) {
|
if ( !lastMFATime || nowTime - lastMFATime > mfaVerifyTTL ) {
|
||||||
|
|
|
@ -361,6 +361,7 @@ defaults = {
|
||||||
'TERMINAL_COMMAND_STORAGE': {},
|
'TERMINAL_COMMAND_STORAGE': {},
|
||||||
'SECURITY_MFA_AUTH': False,
|
'SECURITY_MFA_AUTH': False,
|
||||||
'SECURITY_SERVICE_ACCOUNT_REGISTRATION': True,
|
'SECURITY_SERVICE_ACCOUNT_REGISTRATION': True,
|
||||||
|
'SECURITY_VIEW_AUTH_NEED_MFA': True,
|
||||||
'SECURITY_LOGIN_LIMIT_COUNT': 7,
|
'SECURITY_LOGIN_LIMIT_COUNT': 7,
|
||||||
'SECURITY_LOGIN_LIMIT_TIME': 30,
|
'SECURITY_LOGIN_LIMIT_TIME': 30,
|
||||||
'SECURITY_MAX_IDLE_TIME': 30,
|
'SECURITY_MAX_IDLE_TIME': 30,
|
||||||
|
|
|
@ -18,6 +18,7 @@ def jumpserver_processor(request):
|
||||||
'COPYRIGHT': 'FIT2CLOUD 飞致云' + ' © 2014-2019',
|
'COPYRIGHT': 'FIT2CLOUD 飞致云' + ' © 2014-2019',
|
||||||
'SECURITY_COMMAND_EXECUTION': settings.SECURITY_COMMAND_EXECUTION,
|
'SECURITY_COMMAND_EXECUTION': settings.SECURITY_COMMAND_EXECUTION,
|
||||||
'SECURITY_MFA_VERIFY_TTL': settings.SECURITY_MFA_VERIFY_TTL,
|
'SECURITY_MFA_VERIFY_TTL': settings.SECURITY_MFA_VERIFY_TTL,
|
||||||
|
'SECURITY_VIEW_AUTH_NEED_MFA': settings.CONFIG.SECURITY_VIEW_AUTH_NEED_MFA,
|
||||||
}
|
}
|
||||||
return context
|
return context
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue