mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-09-23 12:29:47 +00:00
perf: Connect methods acl allow accept action
This commit is contained in:
@@ -240,9 +240,17 @@ class ConnectMethodUtil:
|
||||
def get_user_allowed_connect_methods(cls, os, user):
|
||||
from acls.models import ConnectMethodACL
|
||||
methods = cls.get_filtered_protocols_connect_methods(os)
|
||||
acls = ConnectMethodACL.get_user_acls(user)
|
||||
disabled_connect_methods = acls.values_list('connect_methods', flat=True)
|
||||
disabled_connect_methods = set(itertools.chain.from_iterable(disabled_connect_methods))
|
||||
accept_methods = set(itertools.chain.from_iterable(
|
||||
ConnectMethodACL.get_user_acls(user)
|
||||
.filter(action=ConnectMethodACL.ActionChoices.accept)
|
||||
.values_list('connect_methods', flat=True)
|
||||
))
|
||||
# 在禁用的基础上放行一些连接方法
|
||||
disabled_connect_methods = set(itertools.chain.from_iterable(
|
||||
ConnectMethodACL.get_user_acls(user)
|
||||
.filter(action=ConnectMethodACL.ActionChoices.reject)
|
||||
.values_list('connect_methods', flat=True)
|
||||
)) - accept_methods
|
||||
|
||||
new_queryset = {}
|
||||
for protocol, methods in methods.items():
|
||||
|
Reference in New Issue
Block a user