From f1585d00f8e558bdeeb01a3c00068abb2b966a61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Tue, 8 Oct 2019 18:06:14 +0200 Subject: [PATCH] Avoid resource warning by explicitly closing connection issue8682 review255951002 --- res.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/res.py b/res.py index 8ba776aae8..23ae2ec621 100644 --- a/res.py +++ b/res.py @@ -140,18 +140,18 @@ class User(metaclass=PoolMeta): users = cls.ldap_search_user(login, server, attrs=[uid]) if users and len(users) == 1: [(dn, attrs)] = users - con = ldap3.Connection(server, dn, password) - if (password and con.bind()): - # Use ldap uid so we always get the right case - login = attrs.get(uid, [login])[0] - user_id = cls._get_login(login)[0] - if user_id: - return user_id - elif config.getboolean(section, 'create_user'): - user, = cls.create([{ - 'name': login, - 'login': login, - }]) - return user.id + with ldap3.Connection(server, dn, password) as con: + if (password and con.bind()): + # Use ldap uid so we always get the right case + login = attrs.get(uid, [login])[0] + user_id = cls._get_login(login)[0] + if user_id: + return user_id + elif config.getboolean(section, 'create_user'): + user, = cls.create([{ + 'name': login, + 'login': login, + }]) + return user.id except LDAPException: logger.error('LDAPError when login', exc_info=True)