This release is a pre-release and may not be stable for production use.
redturtle.pasldap
This product is currently in development and highly experimental.
Its goal is to improve the performance and resilience of pas.plugins.ldap.
Some implementations may be debatable and have specific prerequisites and conditions.
We strongly recommend reviewing the code and its implemented functionalities carefully before using this product. — or not using it at all. :)
Features
- Check the pas.plugins.ldap configuration for best practices, such as read/connection timeouts, memcached usage, handling many users, etc.
- Log LDAP queries to investigate long processing times and unnecessary operations (ensure passwords are not logged for security).
- Make LDAP operations resilient by persistently caching certain queries (opinionated suggestion).
- Intercept errors such as "Problems getting group_ids!" caused by misconfigurations.
- During testing I saw some call to enumerateUsers with
criteria:{'id': 'user@example.com*'} exact_match:False, ... - ...
We need a profile installation here? (maybe not)
We need restapi here? (maybe not)
pas.plugins.ldap hidden gems
LDAP_ERROR_LOG_TIMEOUT = float(
os.environ.get("PAS_PLUGINS_LDAP_ERROR_LOG_TIMEOUT", 300.0)
)
LDAP_LONG_RUNNING_LOG_THRESHOLD = float(
os.environ.get("PAS_PLUGINS_LDAP_LONG_RUNNING_LOG_THRESHOLD", 5.0)
)
Installation
Install redturtle.pasldap with pip:
pip install redturtle.pasldap
And to create the Plone site:
make create_site
Development
Local ldap server:
cd tests/docker-test-openldap
docker compose build
docker compose up
Verify that ldap is working:
LDAPTLS_REQCERT=never ldapsearch -H ldap://localhost:10389 -ZZ -x -b "ou=people,dc=planetexpress,dc=com" -D "cn=admin,dc=planetexpress,dc=com" -w GoodNewsEveryone "(objectClass=inetOrgPerson)"
make buil-dev
PLONE_REGISTRY_YAML=tests/docker-test-openldap/regenv.yaml LDAPTLS_REQCERT=never make start
Contribute
License
The project is licensed under GPLv2.
Credits and Acknowledgements 🙏
Crafted with care by Generated using Cookieplone (0.8.2) and cookiecutter-plone (d9b5293) on 2025-01-15 23:35:38.896932. A special thanks to all contributors and supporters!
Contributors
- RedTurtle [mauro.amico@redturtle.it]
1.0.0a4 (2026-08-12)
No significant changes.
1.0.0a4 (unreleased)
- Nothing changed yet.
1.0.0a3 (2025-10-07)
- add "Anonymous User" to the reserved userids list @mamico
- False positives in local_groups check @mamico
1.0.0a2 (2025-01-27)
Release files for redturtle.pasldap 1.0.0a4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| redturtle_pasldap-1.0.0a4.tar.gz | 25.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| redturtle_pasldap-1.0.0a4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 51.8 kB
Release files / redturtle_pasldap-1.0.0a4.tar.gz
| Download URL | redturtle_pasldap-1.0.0a4.tar.gz |
|---|---|
| Size | 25.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0a7d306e05291a732083bf828d158db030e6e86de646b78949bc6f94550bd40b
|
|
BLAKE2b-256 checksum How to use checksums |
60b062452c5717c404c05842994e596b52af6c6101291223b5ca52ed412004ed
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.14
|
Release files / redturtle_pasldap-1.0.0a4-py3-none-any.whl
| Download URL | redturtle_pasldap-1.0.0a4-py3-none-any.whl |
|---|---|
| Size | 26.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7f9e867238a7a7570f84b6d2674d5e12bb091a4a744edfac9bf4d9dbc98a4a0a
|
|
BLAKE2b-256 checksum How to use checksums |
8ea4716741dbec734778ba9a02d0924ef0e02cdc8ccdc959e3110dd77200004c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.14
|