- name: Load LDAP configuration variables include_vars: file: "ldap.yml" - name: Check if LDAP source exists community.postgresql.postgresql_query: db: "{{ database_name }}" login_user: "{{ database_username }}" login_password: "{{ database_password }}" login_host: "127.0.0.1" login_port: "{{ database_port }}" query: "SELECT 1 FROM ldap_auth_sources WHERE name = '{{ openproject_ldap.name }}' LIMIT 1;" register: ldap_check - name: Create LDAP auth source if it doesn't exist community.postgresql.postgresql_query: db: "{{ database_name }}" login_user: "{{ database_username }}" login_password: "{{ database_password }}" login_host: "127.0.0.1" login_port: "{{ database_port }}" query: > INSERT INTO ldap_auth_sources (name, host, port, account, account_password, base_dn, attr_login, attr_firstname, attr_lastname, attr_mail, onthefly_register, attr_admin, created_at, updated_at, tls_mode, filter_string, verify_peer, tls_certificate_string) VALUES ( '{{ openproject_ldap.name }}', '{{ openproject_ldap.host }}', {{ openproject_ldap.port }}, '{{ openproject_ldap.account }}', '{{ openproject_ldap.account_password }}', '{{ openproject_ldap.base_dn }}', '{{ openproject_ldap.attr_login }}', '{{ openproject_ldap.attr_firstname }}', '{{ openproject_ldap.attr_lastname }}', '{{ openproject_ldap.attr_mail }}', {{ openproject_ldap.onthefly_register }}, '{{ openproject_ldap.attr_admin }}', NOW(), NOW(), {{ openproject_ldap.tls_mode }}, '{{ openproject_ldap.filter_string }}', {{ openproject_ldap.verify_peer }}, '{{ openproject_ldap.tls_certificate_string }}' ); when: ldap_check.query_result | length == 0 - name: "Check existing LDAP sources" community.postgresql.postgresql_query: db: openproject login_user: postgres query: "SELECT id, name FROM ldap_auth_sources" register: ldap_entries when: enable_debug | bool - name: "Debug LDAP entries" debug: var: ldap_entries when: enable_debug | bool