diff --git a/spug_api/apps/account/views.py b/spug_api/apps/account/views.py index 9f0e673..a8cdfc9 100644 --- a/spug_api/apps/account/views.py +++ b/spug_api/apps/account/views.py @@ -167,9 +167,10 @@ def login(request): if user and not user.is_active: return json_response(error="账户已被系统禁用") if form.type == 'ldap': - if not AppSetting.get_default('ldap_service'): + config = AppSetting.get_default('ldap_service') + if not config: return json_response(error='请在系统设置中配置LDAP后再尝试通过该方式登录') - ldap = LDAP() + ldap = LDAP(**config) is_success, message = ldap.valid_user(form.username, form.password) if is_success: if not user: diff --git a/spug_api/libs/ldap.py b/spug_api/libs/ldap.py index d6d00b2..fc9b6c0 100644 --- a/spug_api/libs/ldap.py +++ b/spug_api/libs/ldap.py @@ -1,21 +1,17 @@ # Copyright: (c) OpenSpug Organization. https://github.com/openspug/spug # Copyright: (c) # Released under the AGPL-3.0 License. -from apps.setting.models import Setting import ldap -import json class LDAP: - def __init__(self): - server_info = Setting.objects.filter(key='ldap_service').first() - ldap_info_dict = json.loads(server_info.value) - self.server = ldap_info_dict['server'] - self.port = ldap_info_dict['port'] - self.rules = ldap_info_dict['rules'] - self.admin_dn = ldap_info_dict['admin_dn'] - self.password = ldap_info_dict['password'] - self.base_dn = ldap_info_dict['base_dn'] + def __init__(self, server, port, rules, admin_dn, password, base_dn): + self.server = server + self.port = port + self.rules = rules + self.admin_dn = admin_dn + self.password = password + self.base_dn = base_dn def valid_user(self, username, password): try: