Skip to content
Deon George edited this page Jun 18, 2025 · 7 revisions

phpLDAPadmin

GitHub commit activityDocker PullsGitHub Downloads (all assets, all releases)GitHub Release DateGitHub commits since latest release

PLA-home

phpLDAPadmin (or PLA for short), is a Lightweight Directory Access Protocol (LDAP) server administration tool written in PHP, to help LDAP administrator's keep their data up to date.

It's aim is to take away the complexity of updating LDAP servers.

Conceived in 2002 by David Smith, it has been maintained by Deon George since 2005.

After a long hiatsus with PLA v1.2, v2 is currently being created, and is a complete re-write leveraging modern development techniques and technology that didnt exist in 2002.

PLA v2 is not a complete functional replacement for v1.2, however it is possible to create new LDAP entries and modify existing ones. More capabilities will be added over time, with the goal to have functional parity to what v1.2 provided.

Maintaining the original goals of v1, PLA v2 is designed to be compliant with LDAP RFCs, enabling it to be used with any LDAP server. If you come across an LDAP server, where PLA exhibits problems, please open a github issue with full details of the problem so that it can be fixed.

For fun, I asked ChatGPT to write an into...

"If you're looking for an efficient and user-friendly way to manage your LDAP directory, look no further than an LDAP administration tool.

With this tool, you can easily add, modify, and delete LDAP entries, as well as perform bulk updates and searches.

The tool offers a graphical user interface, which means you can manage your LDAP directory without having to learn complex command-line interfaces. By using an LDAP administration tool, you can streamline your LDAP directory management tasks and improve your overall productivity."

Demo

If you havent seen PLA yet, you are welcome to check out the demo.

Development

Version 2 is leveraging these awesome projects:

The UI interface is inspired by:

Goals

  • LDAP RFC compliant, so that it can work with any LDAP server (not just OpenLDAP!)
  • Enable data import and export
  • Template driven entry addition, and modification
  • Primarily for LDAP administrators, although some users also use it

It is important to know...

  • PLA does not implement LDAP security. Security is expected to be implemented in the LDAP server that you manage with PLA. PLA will report back any operation that is rejected by the LDAP server, with information about the rejection.

  • PLA is not an authentication or authorisation tool - IE: PLA does not enforce password policy, nor does it restrict access to records based on the authenticated user. Users can perform any and all actions in an LDAP server, that the LDAP server authorises. If you want to limit what users can do in an LDAP server, then configure the LDAP servers ACLs to enforce those limits.

  • For user account management, PLA only manages LDAP server data - it does not implement OS related functions to user management (like creating home directories).

  • Please dont ask for any OpenLDAP specific feature - it wont be implemented - but you may be able to extend PLA to implement it yourself. If PLA needs to change so that your extension works, let me know, and I'll happily consider what needs to be done to help.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Home · leenooks/phpLDAPadmin Wiki · GitHub
Skip to content
Deon George edited this page Jun 18, 2025 · 7 revisions

phpLDAPadmin

GitHub commit activityDocker PullsGitHub Downloads (all assets, all releases)GitHub Release DateGitHub commits since latest release

PLA-home

phpLDAPadmin (or PLA for short), is a Lightweight Directory Access Protocol (LDAP) server administration tool written in PHP, to help LDAP administrator's keep their data up to date.

It's aim is to take away the complexity of updating LDAP servers.

Conceived in 2002 by David Smith, it has been maintained by Deon George since 2005.

After a long hiatsus with PLA v1.2, v2 is currently being created, and is a complete re-write leveraging modern development techniques and technology that didnt exist in 2002.

PLA v2 is not a complete functional replacement for v1.2, however it is possible to create new LDAP entries and modify existing ones. More capabilities will be added over time, with the goal to have functional parity to what v1.2 provided.

Maintaining the original goals of v1, PLA v2 is designed to be compliant with LDAP RFCs, enabling it to be used with any LDAP server. If you come across an LDAP server, where PLA exhibits problems, please open a github issue with full details of the problem so that it can be fixed.

For fun, I asked ChatGPT to write an into...

"If you're looking for an efficient and user-friendly way to manage your LDAP directory, look no further than an LDAP administration tool.

With this tool, you can easily add, modify, and delete LDAP entries, as well as perform bulk updates and searches.

The tool offers a graphical user interface, which means you can manage your LDAP directory without having to learn complex command-line interfaces. By using an LDAP administration tool, you can streamline your LDAP directory management tasks and improve your overall productivity."

Demo

If you havent seen PLA yet, you are welcome to check out the demo.

Development

Version 2 is leveraging these awesome projects:

The UI interface is inspired by:

Goals

  • LDAP RFC compliant, so that it can work with any LDAP server (not just OpenLDAP!)
  • Enable data import and export
  • Template driven entry addition, and modification
  • Primarily for LDAP administrators, although some users also use it

It is important to know...

  • PLA does not implement LDAP security. Security is expected to be implemented in the LDAP server that you manage with PLA. PLA will report back any operation that is rejected by the LDAP server, with information about the rejection.

  • PLA is not an authentication or authorisation tool - IE: PLA does not enforce password policy, nor does it restrict access to records based on the authenticated user. Users can perform any and all actions in an LDAP server, that the LDAP server authorises. If you want to limit what users can do in an LDAP server, then configure the LDAP servers ACLs to enforce those limits.

  • For user account management, PLA only manages LDAP server data - it does not implement OS related functions to user management (like creating home directories).

  • Please dont ask for any OpenLDAP specific feature - it wont be implemented - but you may be able to extend PLA to implement it yourself. If PLA needs to change so that your extension works, let me know, and I'll happily consider what needs to be done to help.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Home · leenooks/phpLDAPadmin Wiki · GitHub
Skip to content
Deon George edited this page Jun 18, 2025 · 7 revisions

phpLDAPadmin

GitHub commit activityDocker PullsGitHub Downloads (all assets, all releases)GitHub Release DateGitHub commits since latest release

PLA-home

phpLDAPadmin (or PLA for short), is a Lightweight Directory Access Protocol (LDAP) server administration tool written in PHP, to help LDAP administrator's keep their data up to date.

It's aim is to take away the complexity of updating LDAP servers.

Conceived in 2002 by David Smith, it has been maintained by Deon George since 2005.

After a long hiatsus with PLA v1.2, v2 is currently being created, and is a complete re-write leveraging modern development techniques and technology that didnt exist in 2002.

PLA v2 is not a complete functional replacement for v1.2, however it is possible to create new LDAP entries and modify existing ones. More capabilities will be added over time, with the goal to have functional parity to what v1.2 provided.

Maintaining the original goals of v1, PLA v2 is designed to be compliant with LDAP RFCs, enabling it to be used with any LDAP server. If you come across an LDAP server, where PLA exhibits problems, please open a github issue with full details of the problem so that it can be fixed.

For fun, I asked ChatGPT to write an into...

"If you're looking for an efficient and user-friendly way to manage your LDAP directory, look no further than an LDAP administration tool.

With this tool, you can easily add, modify, and delete LDAP entries, as well as perform bulk updates and searches.

The tool offers a graphical user interface, which means you can manage your LDAP directory without having to learn complex command-line interfaces. By using an LDAP administration tool, you can streamline your LDAP directory management tasks and improve your overall productivity."

Demo

If you havent seen PLA yet, you are welcome to check out the demo.

Development

Version 2 is leveraging these awesome projects:

The UI interface is inspired by:

Goals

  • LDAP RFC compliant, so that it can work with any LDAP server (not just OpenLDAP!)
  • Enable data import and export
  • Template driven entry addition, and modification
  • Primarily for LDAP administrators, although some users also use it

It is important to know...

  • PLA does not implement LDAP security. Security is expected to be implemented in the LDAP server that you manage with PLA. PLA will report back any operation that is rejected by the LDAP server, with information about the rejection.

  • PLA is not an authentication or authorisation tool - IE: PLA does not enforce password policy, nor does it restrict access to records based on the authenticated user. Users can perform any and all actions in an LDAP server, that the LDAP server authorises. If you want to limit what users can do in an LDAP server, then configure the LDAP servers ACLs to enforce those limits.

  • For user account management, PLA only manages LDAP server data - it does not implement OS related functions to user management (like creating home directories).

  • Please dont ask for any OpenLDAP specific feature - it wont be implemented - but you may be able to extend PLA to implement it yourself. If PLA needs to change so that your extension works, let me know, and I'll happily consider what needs to be done to help.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Home · leenooks/phpLDAPadmin Wiki · GitHub
Skip to content
Deon George edited this page Jun 18, 2025 · 7 revisions

phpLDAPadmin

GitHub commit activityDocker PullsGitHub Downloads (all assets, all releases)GitHub Release DateGitHub commits since latest release

PLA-home

phpLDAPadmin (or PLA for short), is a Lightweight Directory Access Protocol (LDAP) server administration tool written in PHP, to help LDAP administrator's keep their data up to date.

It's aim is to take away the complexity of updating LDAP servers.

Conceived in 2002 by David Smith, it has been maintained by Deon George since 2005.

After a long hiatsus with PLA v1.2, v2 is currently being created, and is a complete re-write leveraging modern development techniques and technology that didnt exist in 2002.

PLA v2 is not a complete functional replacement for v1.2, however it is possible to create new LDAP entries and modify existing ones. More capabilities will be added over time, with the goal to have functional parity to what v1.2 provided.

Maintaining the original goals of v1, PLA v2 is designed to be compliant with LDAP RFCs, enabling it to be used with any LDAP server. If you come across an LDAP server, where PLA exhibits problems, please open a github issue with full details of the problem so that it can be fixed.

For fun, I asked ChatGPT to write an into...

"If you're looking for an efficient and user-friendly way to manage your LDAP directory, look no further than an LDAP administration tool.

With this tool, you can easily add, modify, and delete LDAP entries, as well as perform bulk updates and searches.

The tool offers a graphical user interface, which means you can manage your LDAP directory without having to learn complex command-line interfaces. By using an LDAP administration tool, you can streamline your LDAP directory management tasks and improve your overall productivity."

Demo

If you havent seen PLA yet, you are welcome to check out the demo.

Development

Version 2 is leveraging these awesome projects:

The UI interface is inspired by:

Goals

  • LDAP RFC compliant, so that it can work with any LDAP server (not just OpenLDAP!)
  • Enable data import and export
  • Template driven entry addition, and modification
  • Primarily for LDAP administrators, although some users also use it

It is important to know...

  • PLA does not implement LDAP security. Security is expected to be implemented in the LDAP server that you manage with PLA. PLA will report back any operation that is rejected by the LDAP server, with information about the rejection.

  • PLA is not an authentication or authorisation tool - IE: PLA does not enforce password policy, nor does it restrict access to records based on the authenticated user. Users can perform any and all actions in an LDAP server, that the LDAP server authorises. If you want to limit what users can do in an LDAP server, then configure the LDAP servers ACLs to enforce those limits.

  • For user account management, PLA only manages LDAP server data - it does not implement OS related functions to user management (like creating home directories).

  • Please dont ask for any OpenLDAP specific feature - it wont be implemented - but you may be able to extend PLA to implement it yourself. If PLA needs to change so that your extension works, let me know, and I'll happily consider what needs to be done to help.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Home · leenooks/phpLDAPadmin Wiki · GitHub
Skip to content
Deon George edited this page Jun 18, 2025 · 7 revisions

phpLDAPadmin

GitHub commit activityDocker PullsGitHub Downloads (all assets, all releases)GitHub Release DateGitHub commits since latest release

PLA-home

phpLDAPadmin (or PLA for short), is a Lightweight Directory Access Protocol (LDAP) server administration tool written in PHP, to help LDAP administrator's keep their data up to date.

It's aim is to take away the complexity of updating LDAP servers.

Conceived in 2002 by David Smith, it has been maintained by Deon George since 2005.

After a long hiatsus with PLA v1.2, v2 is currently being created, and is a complete re-write leveraging modern development techniques and technology that didnt exist in 2002.

PLA v2 is not a complete functional replacement for v1.2, however it is possible to create new LDAP entries and modify existing ones. More capabilities will be added over time, with the goal to have functional parity to what v1.2 provided.

Maintaining the original goals of v1, PLA v2 is designed to be compliant with LDAP RFCs, enabling it to be used with any LDAP server. If you come across an LDAP server, where PLA exhibits problems, please open a github issue with full details of the problem so that it can be fixed.

For fun, I asked ChatGPT to write an into...

"If you're looking for an efficient and user-friendly way to manage your LDAP directory, look no further than an LDAP administration tool.

With this tool, you can easily add, modify, and delete LDAP entries, as well as perform bulk updates and searches.

The tool offers a graphical user interface, which means you can manage your LDAP directory without having to learn complex command-line interfaces. By using an LDAP administration tool, you can streamline your LDAP directory management tasks and improve your overall productivity."

Demo

If you havent seen PLA yet, you are welcome to check out the demo.

Development

Version 2 is leveraging these awesome projects:

The UI interface is inspired by:

Goals

  • LDAP RFC compliant, so that it can work with any LDAP server (not just OpenLDAP!)
  • Enable data import and export
  • Template driven entry addition, and modification
  • Primarily for LDAP administrators, although some users also use it

It is important to know...

  • PLA does not implement LDAP security. Security is expected to be implemented in the LDAP server that you manage with PLA. PLA will report back any operation that is rejected by the LDAP server, with information about the rejection.

  • PLA is not an authentication or authorisation tool - IE: PLA does not enforce password policy, nor does it restrict access to records based on the authenticated user. Users can perform any and all actions in an LDAP server, that the LDAP server authorises. If you want to limit what users can do in an LDAP server, then configure the LDAP servers ACLs to enforce those limits.

  • For user account management, PLA only manages LDAP server data - it does not implement OS related functions to user management (like creating home directories).

  • Please dont ask for any OpenLDAP specific feature - it wont be implemented - but you may be able to extend PLA to implement it yourself. If PLA needs to change so that your extension works, let me know, and I'll happily consider what needs to be done to help.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Home · leenooks/phpLDAPadmin Wiki · GitHub
Skip to content
Deon George edited this page Jun 18, 2025 · 7 revisions

phpLDAPadmin

GitHub commit activityDocker PullsGitHub Downloads (all assets, all releases)GitHub Release DateGitHub commits since latest release

PLA-home

phpLDAPadmin (or PLA for short), is a Lightweight Directory Access Protocol (LDAP) server administration tool written in PHP, to help LDAP administrator's keep their data up to date.

It's aim is to take away the complexity of updating LDAP servers.

Conceived in 2002 by David Smith, it has been maintained by Deon George since 2005.

After a long hiatsus with PLA v1.2, v2 is currently being created, and is a complete re-write leveraging modern development techniques and technology that didnt exist in 2002.

PLA v2 is not a complete functional replacement for v1.2, however it is possible to create new LDAP entries and modify existing ones. More capabilities will be added over time, with the goal to have functional parity to what v1.2 provided.

Maintaining the original goals of v1, PLA v2 is designed to be compliant with LDAP RFCs, enabling it to be used with any LDAP server. If you come across an LDAP server, where PLA exhibits problems, please open a github issue with full details of the problem so that it can be fixed.

For fun, I asked ChatGPT to write an into...

"If you're looking for an efficient and user-friendly way to manage your LDAP directory, look no further than an LDAP administration tool.

With this tool, you can easily add, modify, and delete LDAP entries, as well as perform bulk updates and searches.

The tool offers a graphical user interface, which means you can manage your LDAP directory without having to learn complex command-line interfaces. By using an LDAP administration tool, you can streamline your LDAP directory management tasks and improve your overall productivity."

Demo

If you havent seen PLA yet, you are welcome to check out the demo.

Development

Version 2 is leveraging these awesome projects:

The UI interface is inspired by:

Goals

  • LDAP RFC compliant, so that it can work with any LDAP server (not just OpenLDAP!)
  • Enable data import and export
  • Template driven entry addition, and modification
  • Primarily for LDAP administrators, although some users also use it

It is important to know...

  • PLA does not implement LDAP security. Security is expected to be implemented in the LDAP server that you manage with PLA. PLA will report back any operation that is rejected by the LDAP server, with information about the rejection.

  • PLA is not an authentication or authorisation tool - IE: PLA does not enforce password policy, nor does it restrict access to records based on the authenticated user. Users can perform any and all actions in an LDAP server, that the LDAP server authorises. If you want to limit what users can do in an LDAP server, then configure the LDAP servers ACLs to enforce those limits.

  • For user account management, PLA only manages LDAP server data - it does not implement OS related functions to user management (like creating home directories).

  • Please dont ask for any OpenLDAP specific feature - it wont be implemented - but you may be able to extend PLA to implement it yourself. If PLA needs to change so that your extension works, let me know, and I'll happily consider what needs to be done to help.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Home · leenooks/phpLDAPadmin Wiki · GitHub
Skip to content
Deon George edited this page Jun 18, 2025 · 7 revisions

phpLDAPadmin

GitHub commit activityDocker PullsGitHub Downloads (all assets, all releases)GitHub Release DateGitHub commits since latest release

PLA-home

phpLDAPadmin (or PLA for short), is a Lightweight Directory Access Protocol (LDAP) server administration tool written in PHP, to help LDAP administrator's keep their data up to date.

It's aim is to take away the complexity of updating LDAP servers.

Conceived in 2002 by David Smith, it has been maintained by Deon George since 2005.

After a long hiatsus with PLA v1.2, v2 is currently being created, and is a complete re-write leveraging modern development techniques and technology that didnt exist in 2002.

PLA v2 is not a complete functional replacement for v1.2, however it is possible to create new LDAP entries and modify existing ones. More capabilities will be added over time, with the goal to have functional parity to what v1.2 provided.

Maintaining the original goals of v1, PLA v2 is designed to be compliant with LDAP RFCs, enabling it to be used with any LDAP server. If you come across an LDAP server, where PLA exhibits problems, please open a github issue with full details of the problem so that it can be fixed.

For fun, I asked ChatGPT to write an into...

"If you're looking for an efficient and user-friendly way to manage your LDAP directory, look no further than an LDAP administration tool.

With this tool, you can easily add, modify, and delete LDAP entries, as well as perform bulk updates and searches.

The tool offers a graphical user interface, which means you can manage your LDAP directory without having to learn complex command-line interfaces. By using an LDAP administration tool, you can streamline your LDAP directory management tasks and improve your overall productivity."

Demo

If you havent seen PLA yet, you are welcome to check out the demo.

Development

Version 2 is leveraging these awesome projects:

The UI interface is inspired by:

Goals

  • LDAP RFC compliant, so that it can work with any LDAP server (not just OpenLDAP!)
  • Enable data import and export
  • Template driven entry addition, and modification
  • Primarily for LDAP administrators, although some users also use it

It is important to know...

  • PLA does not implement LDAP security. Security is expected to be implemented in the LDAP server that you manage with PLA. PLA will report back any operation that is rejected by the LDAP server, with information about the rejection.

  • PLA is not an authentication or authorisation tool - IE: PLA does not enforce password policy, nor does it restrict access to records based on the authenticated user. Users can perform any and all actions in an LDAP server, that the LDAP server authorises. If you want to limit what users can do in an LDAP server, then configure the LDAP servers ACLs to enforce those limits.

  • For user account management, PLA only manages LDAP server data - it does not implement OS related functions to user management (like creating home directories).

  • Please dont ask for any OpenLDAP specific feature - it wont be implemented - but you may be able to extend PLA to implement it yourself. If PLA needs to change so that your extension works, let me know, and I'll happily consider what needs to be done to help.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Home · leenooks/phpLDAPadmin Wiki · GitHub
Skip to content
Deon George edited this page Jun 18, 2025 · 7 revisions

phpLDAPadmin

GitHub commit activityDocker PullsGitHub Downloads (all assets, all releases)GitHub Release DateGitHub commits since latest release

PLA-home

phpLDAPadmin (or PLA for short), is a Lightweight Directory Access Protocol (LDAP) server administration tool written in PHP, to help LDAP administrator's keep their data up to date.

It's aim is to take away the complexity of updating LDAP servers.

Conceived in 2002 by David Smith, it has been maintained by Deon George since 2005.

After a long hiatsus with PLA v1.2, v2 is currently being created, and is a complete re-write leveraging modern development techniques and technology that didnt exist in 2002.

PLA v2 is not a complete functional replacement for v1.2, however it is possible to create new LDAP entries and modify existing ones. More capabilities will be added over time, with the goal to have functional parity to what v1.2 provided.

Maintaining the original goals of v1, PLA v2 is designed to be compliant with LDAP RFCs, enabling it to be used with any LDAP server. If you come across an LDAP server, where PLA exhibits problems, please open a github issue with full details of the problem so that it can be fixed.

For fun, I asked ChatGPT to write an into...

"If you're looking for an efficient and user-friendly way to manage your LDAP directory, look no further than an LDAP administration tool.

With this tool, you can easily add, modify, and delete LDAP entries, as well as perform bulk updates and searches.

The tool offers a graphical user interface, which means you can manage your LDAP directory without having to learn complex command-line interfaces. By using an LDAP administration tool, you can streamline your LDAP directory management tasks and improve your overall productivity."

Demo

If you havent seen PLA yet, you are welcome to check out the demo.

Development

Version 2 is leveraging these awesome projects:

The UI interface is inspired by:

Goals

  • LDAP RFC compliant, so that it can work with any LDAP server (not just OpenLDAP!)
  • Enable data import and export
  • Template driven entry addition, and modification
  • Primarily for LDAP administrators, although some users also use it

It is important to know...

  • PLA does not implement LDAP security. Security is expected to be implemented in the LDAP server that you manage with PLA. PLA will report back any operation that is rejected by the LDAP server, with information about the rejection.

  • PLA is not an authentication or authorisation tool - IE: PLA does not enforce password policy, nor does it restrict access to records based on the authenticated user. Users can perform any and all actions in an LDAP server, that the LDAP server authorises. If you want to limit what users can do in an LDAP server, then configure the LDAP servers ACLs to enforce those limits.

  • For user account management, PLA only manages LDAP server data - it does not implement OS related functions to user management (like creating home directories).

  • Please dont ask for any OpenLDAP specific feature - it wont be implemented - but you may be able to extend PLA to implement it yourself. If PLA needs to change so that your extension works, let me know, and I'll happily consider what needs to be done to help.

Clone this wiki locally