collective / collective/pas.plugins.ldap
Connection test runs synchronously on every control panel render
- Dominant language
- Python
- Stars
- 13
- Forks
- 22
- PR merge metrics
- No merged PRs in 30d
Description
Found during the 2.0.0 release-readiness review (see #144).
Every render of the LDAP control panel calls `connection_test()`, which performs a live LDAP bind + authenticate + group fetch synchronously:
- `src/pas/plugins/ldap/plonecontrolpanel/controlpanel.pt` → `properties.py` `connection_test()`
On a slow or unreachable LDAP/AD server this blocks the whole page for the full `SERVER_DOWN`/timeout duration. Exceptions are caught (the page won't 500), but the UX is poor.
### Suggestion
Make the connection test on-demand (a button / AJAX call) instead of running it on every page load, and/or honor the configured connection timeout.
Severity: non-critical (UX), no release blocker.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with src/pas/plugins/ldap/plonecontrolpanel/controlpanel.pt and the properties.py connection_test() path described in the issue. Reproduce a slow or unreachable LDAP/AD server, then trace the control-panel render to identify where the synchronous bind, authentication, and group fetch occur. Done means normal page loads no longer wait on the live connection test, while the test remains usable on demand or respects the configured timeout.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- authentication, backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100