mirror of https://github.com/jumpserver/jumpserver
perf:LDAP报错信息不对
parent
d8a891a7d7
commit
80a506e99f
|
@ -28,15 +28,7 @@ from .tools import (
|
||||||
|
|
||||||
logger = get_logger(__name__)
|
logger = get_logger(__name__)
|
||||||
|
|
||||||
CACHE_KEY_LDAP_TEST_CONFIG_MSG = 'CACHE_KEY_LDAP_TEST_CONFIG_MSG'
|
|
||||||
CACHE_KEY_LDAP_TEST_LOGIN_MSG = 'CACHE_KEY_LDAP_TEST_LOGIN_MSG'
|
|
||||||
CACHE_KEY_LDAP_SYNC_USER_MSG = 'CACHE_KEY_LDAP_SYNC_USER_MSG'
|
|
||||||
CACHE_KEY_LDAP_IMPORT_USER_MSG = 'CACHE_KEY_LDAP_IMPORT_USER_MSG'
|
|
||||||
CACHE_KEY_LDAP_TEST_CONFIG_TASK_STATUS = 'CACHE_KEY_LDAP_TEST_CONFIG_TASK_STATUS'
|
CACHE_KEY_LDAP_TEST_CONFIG_TASK_STATUS = 'CACHE_KEY_LDAP_TEST_CONFIG_TASK_STATUS'
|
||||||
CACHE_KEY_LDAP_TEST_LOGIN_TASK_STATUS = 'CACHE_KEY_LDAP_TEST_LOGIN_TASK_STATUS'
|
|
||||||
CACHE_KEY_LDAP_SYNC_USER_TASK_STATUS = 'CACHE_KEY_LDAP_SYNC_USER_TASK_STATUS'
|
|
||||||
CACHE_KEY_LDAP_IMPORT_USER_TASK_STATUS = 'CACHE_KEY_LDAP_IMPORT_USER_TASK_STATUS'
|
|
||||||
TASK_STATUS_IS_RUNNING = 'RUNNING'
|
|
||||||
TASK_STATUS_IS_OVER = 'OVER'
|
TASK_STATUS_IS_OVER = 'OVER'
|
||||||
|
|
||||||
|
|
||||||
|
@ -118,15 +110,7 @@ class LdapWebsocket(AsyncJsonWebsocketConsumer):
|
||||||
msg_type = data.pop('msg_type', 'testing_config')
|
msg_type = data.pop('msg_type', 'testing_config')
|
||||||
try:
|
try:
|
||||||
tool_func = getattr(self, f'run_{msg_type.lower()}')
|
tool_func = getattr(self, f'run_{msg_type.lower()}')
|
||||||
await asyncio.to_thread(tool_func, data)
|
ok, msg = await asyncio.to_thread(tool_func, data)
|
||||||
if msg_type == 'testing_config':
|
|
||||||
ok, msg = cache.get(CACHE_KEY_LDAP_TEST_CONFIG_MSG)
|
|
||||||
elif msg_type == 'sync_user':
|
|
||||||
ok, msg = cache.get(CACHE_KEY_LDAP_SYNC_USER_MSG)
|
|
||||||
elif msg_type == 'import_user':
|
|
||||||
ok, msg = cache.get(CACHE_KEY_LDAP_IMPORT_USER_MSG)
|
|
||||||
else:
|
|
||||||
ok, msg = cache.get(CACHE_KEY_LDAP_TEST_LOGIN_MSG)
|
|
||||||
await self.send_msg(ok, msg)
|
await self.send_msg(ok, msg)
|
||||||
except Exception as error:
|
except Exception as error:
|
||||||
await self.send_msg(msg='Exception: %s' % error)
|
await self.send_msg(msg='Exception: %s' % error)
|
||||||
|
@ -172,60 +156,35 @@ class LdapWebsocket(AsyncJsonWebsocketConsumer):
|
||||||
def set_task_status_over(task_key, ttl=120):
|
def set_task_status_over(task_key, ttl=120):
|
||||||
cache.set(task_key, TASK_STATUS_IS_OVER, ttl)
|
cache.set(task_key, TASK_STATUS_IS_OVER, ttl)
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def set_task_msg(task_key, ok, msg, ttl=120):
|
|
||||||
cache.set(task_key, (ok, msg), ttl)
|
|
||||||
|
|
||||||
def run_testing_config(self, data):
|
def run_testing_config(self, data):
|
||||||
while True:
|
|
||||||
if self.task_is_over(CACHE_KEY_LDAP_TEST_CONFIG_TASK_STATUS):
|
|
||||||
break
|
|
||||||
else:
|
|
||||||
serializer = LDAPTestConfigSerializer(data=data)
|
serializer = LDAPTestConfigSerializer(data=data)
|
||||||
if not serializer.is_valid():
|
if not serializer.is_valid():
|
||||||
self.send_msg(msg=f'error: {str(serializer.errors)}')
|
self.send_msg(msg=f'error: {str(serializer.errors)}')
|
||||||
config = self.get_ldap_config(serializer)
|
config = self.get_ldap_config(serializer)
|
||||||
ok, msg = LDAPTestUtil(config).test_config()
|
ok, msg = LDAPTestUtil(config).test_config()
|
||||||
|
if ok:
|
||||||
self.set_task_status_over(CACHE_KEY_LDAP_TEST_CONFIG_TASK_STATUS)
|
self.set_task_status_over(CACHE_KEY_LDAP_TEST_CONFIG_TASK_STATUS)
|
||||||
self.set_task_msg(CACHE_KEY_LDAP_TEST_CONFIG_MSG, ok, msg)
|
return ok, msg
|
||||||
|
|
||||||
def run_testing_login(self, data):
|
def run_testing_login(self, data):
|
||||||
while True:
|
|
||||||
if self.task_is_over(CACHE_KEY_LDAP_TEST_LOGIN_TASK_STATUS):
|
|
||||||
break
|
|
||||||
else:
|
|
||||||
serializer = LDAPTestLoginSerializer(data=data)
|
serializer = LDAPTestLoginSerializer(data=data)
|
||||||
if not serializer.is_valid():
|
if not serializer.is_valid():
|
||||||
self.send_msg(msg=f'error: {str(serializer.errors)}')
|
self.send_msg(msg=f'error: {str(serializer.errors)}')
|
||||||
username = serializer.validated_data['username']
|
username = serializer.validated_data['username']
|
||||||
password = serializer.validated_data['password']
|
password = serializer.validated_data['password']
|
||||||
ok, msg = LDAPTestUtil().test_login(username, password)
|
ok, msg = LDAPTestUtil().test_login(username, password)
|
||||||
self.set_task_status_over(CACHE_KEY_LDAP_TEST_LOGIN_TASK_STATUS, 3)
|
return ok, msg
|
||||||
self.set_task_msg(CACHE_KEY_LDAP_TEST_LOGIN_MSG, ok, msg)
|
|
||||||
|
|
||||||
def run_sync_user(self, data):
|
@staticmethod
|
||||||
while True:
|
def run_sync_user(data):
|
||||||
if self.task_is_over(CACHE_KEY_LDAP_SYNC_USER_TASK_STATUS):
|
|
||||||
break
|
|
||||||
else:
|
|
||||||
sync_util = LDAPSyncUtil()
|
sync_util = LDAPSyncUtil()
|
||||||
sync_util.clear_cache()
|
sync_util.clear_cache()
|
||||||
sync_ldap_user()
|
sync_ldap_user()
|
||||||
msg = sync_util.get_task_error_msg()
|
msg = sync_util.get_task_error_msg()
|
||||||
ok = False if msg else True
|
ok = False if msg else True
|
||||||
self.set_task_status_over(CACHE_KEY_LDAP_SYNC_USER_TASK_STATUS)
|
return ok, msg
|
||||||
self.set_task_msg(CACHE_KEY_LDAP_SYNC_USER_MSG, ok, msg)
|
|
||||||
|
|
||||||
def run_import_user(self, data):
|
def run_import_user(self, data):
|
||||||
while True:
|
|
||||||
if self.task_is_over(CACHE_KEY_LDAP_IMPORT_USER_TASK_STATUS):
|
|
||||||
break
|
|
||||||
else:
|
|
||||||
ok, msg = self.import_user(data)
|
|
||||||
self.set_task_status_over(CACHE_KEY_LDAP_IMPORT_USER_TASK_STATUS, 3)
|
|
||||||
self.set_task_msg(CACHE_KEY_LDAP_IMPORT_USER_MSG, ok, msg, 3)
|
|
||||||
|
|
||||||
def import_user(self, data):
|
|
||||||
ok = False
|
ok = False
|
||||||
org_ids = data.get('org_ids')
|
org_ids = data.get('org_ids')
|
||||||
username_list = data.get('username_list', [])
|
username_list = data.get('username_list', [])
|
||||||
|
|
Loading…
Reference in New Issue