collective / collective/pas.plugins.ldap

Connection test runs synchronously on every control panel render

Open
#145 0 comments 0 reactions 0 assignees View on GitHub
enhancement
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.