Remove non-functional Joomla LDAP integration

- Disabled LDAP feature flag (set to false by default, with comment)
- Removed ldapautocreate plugin (PHP + XML)
- Deleted LDAP helper tasks (01_ldap_files.yml, 05_ldap.yml, 07_diagnose.yml)
- Deleted LDAP CLI helper scripts (cli.php, diagnose.php, plugins.php, auth-trace.php)
- Removed LDAP configuration variables from vars/main.yml
- Removed LDAP environment variables from env.j2
- Removed LDAP-specific mounts from docker-compose.yml.j2
- Dropped php-ldap installation from Dockerfile
- Renamed task files for consistent numbering (02->01_install, 03->02_debug, 04->03_patch, 06->04_assert)

Reason: LDAP integration was removed because it was not functional.

Conversation: https://chatgpt.com/share/68b09373-7aa8-800f-8f2c-11e27123bad1
This commit is contained in:
2025-08-28 19:36:12 +02:00
parent fe399c3967
commit 9f2cfe65af
19 changed files with 15 additions and 947 deletions

View File

@@ -1,46 +0,0 @@
- name: "Render LDAP CLI helper"
template:
src: ldap/cli.php.j2
dest: "{{ JOOMLA_LDAP_CONF_FILE }}"
mode: "0644"
when: JOOMLA_LDAP_ENABLED | bool
notify: docker compose restart
- block:
- name: "Ensure ldapautocreate plugin hostdir exists"
file:
path: "{{ JOOMLA_LDAP_AUT_CRT_HOST_DIR }}"
state: directory
mode: "0755"
- name: "Deploy ldapautocreate plugin files"
copy:
src: "ldapautocreate.{{ item }}"
dest: "{{ [ JOOMLA_LDAP_AUT_CRT_HOST_DIR, 'ldapautocreate.' ~ item ] | path_join }}"
mode: "0644"
notify: docker compose restart
loop:
- php
- xml
when: JOOMLA_LDAP_AUTO_CREATE_ENABLED | bool
- name: "Deploy LDAP diagnose CLI"
template:
src: ldap/diagnose.php.j2
dest: "{{ docker_compose.directories.volumes }}/cli-ldap-diagnose.php"
mode: "0644"
when: MODE_DEBUG | bool
- name: "Deploy Joomla plugin inspector CLI (list state)"
template:
src: ldap/plugins.php.j2
dest: "{{ docker_compose.directories.volumes }}/cli-plugins.php"
mode: "0644"
when: MODE_DEBUG | bool
- name: "Deploy Joomla auth trace CLI"
template:
src: ldap/auth-trace.php.j2
dest: "{{ docker_compose.directories.volumes }}/cli-ldap-auth-trace.php"
mode: "0644"
when: MODE_DEBUG | bool

View File

@@ -1,55 +0,0 @@
- name: "Configure LDAP plugin params via helper"
command: >
docker exec {{ JOOMLA_CONTAINER }}
sh -c 'test -f /var/www/html/cli/cli-ldap.php && php /var/www/html/cli/cli-ldap.php'
register: ldap_conf
changed_when: "'configured' in ldap_conf.stdout | lower"
async: "{{ ASYNC_TIME if ASYNC_ENABLED | bool else omit }}"
poll: "{{ ASYNC_POLL if ASYNC_ENABLED | bool else omit }}"
- name: "Register & enable ldapautocreate Joomla system plugin"
command: >
docker exec {{ JOOMLA_CONTAINER }}
sh -lc '
test -f /var/www/html/plugins/system/ldapautocreate/ldapautocreate.php ||
{ echo "ERROR: plugin file missing"; exit 1; };
php -r "
define(\"_JEXEC\",1);
\$root=\"/var/www/html\";
require \$root.\"/includes/defines.php\";
require \$root.\"/includes/framework.php\";
\$dbo = Joomla\\CMS\\Factory::getDbo();
\$ext = \$dbo->setQuery(
\"SELECT * FROM #__extensions WHERE type=\\\"plugin\\\" AND folder=\\\"system\\\" AND element=\\\"ldapautocreate\\\"\"
)->loadObject();
if (!\$ext) {
\$row = (object)[
\"name\" => \"plg_system_ldapautocreate\",
\"type\" => \"plugin\",
\"element\" => \"ldapautocreate\",
\"folder\" => \"system\",
\"enabled\" => 1,
\"access\" => 1,
\"protected\" => 0,
\"manifest_cache\" => \"{}\",
\"params\" => \"{}\",
\"custom_data\" => \"{}\",
\"state\" => 0,
\"ordering\" => 0,
\"client_id\" => 0
];
\$dbo->insertObject(\"#__extensions\", \$row);
echo \"Plugin registered + enabled\\n\";
} else {
\$ext->enabled = 1;
\$dbo->updateObject(\"#__extensions\", \$ext, \"extension_id\");
echo \"Plugin already exists, just enabled\\n\";
}
"
'
register: ldapautocreate_reg
changed_when: >
('registered + enabled' in (ldapautocreate_reg.stdout | lower)) or
('just enabled' in (ldapautocreate_reg.stdout | lower))
failed_when: ldapautocreate_reg.rc != 0
when: JOOMLA_LDAP_AUTO_CREATE_ENABLED | bool

View File

@@ -1,14 +0,0 @@
- name: "Run LDAP diagnose"
command:
argv:
- docker
- exec
- "{{ JOOMLA_CONTAINER }}"
- php
- /var/www/html/cli/ldap-diagnose.php
- "--username={{ users.administrator.username }}"
register: ldap_diag
changed_when: false
- debug:
var: ldap_diag.stdout_lines

View File

@@ -1,40 +1,26 @@
---
#- name: "Include role srv-domain-provision for {{ application_id }}"
# include_role:
# name: srv-domain-provision
# loop: "{{ JOOMLA_DOMAINS }}"
# loop_control:
# loop_var: domain
# vars:
# http_port: "{{ ports.localhost.http[application_id] }}"
- name: "Include role srv-domain-provision for {{ application_id }}"
include_role:
name: srv-domain-provision
loop: "{{ JOOMLA_DOMAINS }}"
loop_control:
loop_var: domain
vars:
http_port: "{{ ports.localhost.http[application_id] }}"
- name: "load docker and db for {{ application_id }}"
include_role:
name: cmp-db-docker
vars:
docker_compose_flush_handlers: false
- name: Include install routines
include_tasks: "01_ldap_files.yml"
- name: "flush docker compose handlers"
meta: flush_handlers
docker_compose_flush_handlers: true
- name: Include install routines
include_tasks: "{{ item }}"
loop:
- 02_install.yml
- 03_debug.yml
- 04_patch.yml
- name: Include LDAP routines
include_tasks: "05_ldap.yml"
when: JOOMLA_LDAP_ENABLED | bool
- 01_install.yml
- 02_debug.yml
- 03_patch.yml
- name: Include assert routines
include_tasks: "06_assert.yml"
include_tasks: "04_assert.yml"
when: MODE_ASSERT | bool
- name: Include LDAP diagnose routines
include_tasks: "07_diagnose.yml"
when: MODE_DEBUG | bool and JOOMLA_LDAP_ENABLED | bool