Skip to content

Commit

Permalink
[FIX] auth_ldap: replace the deprecated library by one up to date
Browse files Browse the repository at this point in the history
At 795c7b0 the external dependencies was changed from trying
to import 'ldap' to checking than 'pyldap' package was installed.
The problem is that pyldap is a unmaintained library that should no
longer be used, as explained on the package page:
https://pypi.org/project/pyldap/
"The pyldap fork was merged back into python-ldap, and released as
 python-ldap 3.0.0."

Having pyldap version >= 3.0 installs python-ldap automatically and
will not cause any issue.

The Debian control file package name is adapted to use the latest.

The "ldap" externalm dependency defined in __manifest__.py will cause
pkg_resources.get_distribution() to fail in both case ("python-lap" or
"pyldap"), but the "import" fallback will succeed. For that reason, the
log warning is turned into a log info.

closes odoo#43769

Note: This library should be replaced by the pure python "ldap3" library.
X-original-commit: 1afd0cc
Signed-off-by: Christophe Monniez (moc) <[email protected]>
  • Loading branch information
mart-e authored and d-fence committed Jan 22, 2020
1 parent b980086 commit 9aef423
Show file tree
Hide file tree
Showing 9 changed files with 7 additions and 9 deletions.
2 changes: 1 addition & 1 deletion addons/auth_ldap/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Adds support for authentication by LDAP server.
This module allows users to login with their LDAP username and password, and
will automatically create Odoo users for them on the fly.

**Note:** This module only work on servers who have Python's ``ldap`` module installed.
**Note:** This module only work on servers that have Python's ``python-ldap`` module installed.

Configuration:
--------------
Expand Down
2 changes: 1 addition & 1 deletion addons/auth_ldap/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@
'views/res_config_settings_views.xml',
],
'external_dependencies': {
'python': ['pyldap'],
'python': ['ldap'],
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ PKGS_TO_INSTALL="
python3-feedparser \
python3-pil \
python3-jinja2 \
python3-ldap3 \
python3-ldap \
python3-lxml \
python3-mako \
python3-mock \
Expand Down
2 changes: 1 addition & 1 deletion debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ Replaces: tinyerp-server, openerp-server, openerp-web, openerp
Recommends:
${python3:Recommends},
postgresql,
python3-pyldap,
python3-ldap,
Description: Open Source Apps To Grow Your Business
Odoo, formerly known as OpenERP, is a suite of open-source business apps
written in Python and released under the LGPLv3 license. This suite of
Expand Down
2 changes: 1 addition & 1 deletion odoo/addons/base/models/ir_module.py
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,7 @@ def _check_python_external_dependency(pydep):
except pkg_resources.DistributionNotFound as e:
try:
importlib.import_module(pydep)
_logger.warning("python external dependency %s should be replaced by it's PyPI package name", pydep)
_logger.info("python external dependency on '%s' does not appear to be a valid PyPI package. Using a PyPI package name is recommended.", pydep)
except ImportError:
# backward compatibility attempt failed
_logger.warning("DistributionNotFound: %s", e)
Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ psutil==5.5.1
psycopg2==2.7.7; sys_platform != 'win32'
psycopg2==2.8.3; sys_platform == 'win32'
pydot==1.4.1
pyldap==2.4.28; sys_platform != 'win32'
python-ldap==3.1.0; sys_platform != 'win32'
pyparsing==2.2.0
PyPDF2==1.26.0
pyserial==3.4
Expand Down
1 change: 0 additions & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ requires =
python3-psycopg2
python3-polib
python3-pydot
python3-pyldap
python3-pyparsing
python3-PyPDF2
python3-pyserial
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
],
python_requires='>=3.6',
extras_require={
'ldap': ['pyldap'],
'ldap': ['python-ldap'],
'SSL': ['pyopenssl'],
},
tests_require=[
Expand Down
1 change: 0 additions & 1 deletion setup/win32/winpy_requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ polib>=1.1.0
psutil>=4.3.1
psycopg2==2.7.1
pydot==1.2.3
pyldap>=2.4.28
pyparsing==2.1.10
PyPDF2==1.26.0
pyserial==3.1.1
Expand Down

0 comments on commit 9aef423

Please sign in to comment.