Finished listmonk bounce implementation

This commit is contained in:
Kevin Veen-Birkenbach 2025-04-24 19:52:27 +02:00
parent 36606b5594
commit fca8eee8e7
No known key found for this signature in database
GPG Key ID: 44D8F11FD62F878E
3 changed files with 27 additions and 9 deletions

View File

@ -23,7 +23,7 @@
- name: "Fetch existing API tokens via curl inside admin container" - name: "Fetch existing API tokens via curl inside admin container"
command: >- command: >-
docker compose exec -T admin \ docker compose exec -T admin \
curl -s -X GET http://127.0.0.1:8080/api/v1/token \ curl -s -X GET {{ mailu_api_base_url }}/token \
-H "Authorization: Bearer {{ mailu_global_api_token }}" -H "Authorization: Bearer {{ mailu_global_api_token }}"
args: args:
chdir: "{{ mailu_compose_dir }}" chdir: "{{ mailu_compose_dir }}"
@ -41,10 +41,23 @@
| list | list
).0 | default(None) }} ).0 | default(None) }}
- name: "Create API token for {{ mailu_user }} if none exists" - name: "Delete existing API token for {{ mailu_user }} if local token missing but remote exists"
command: >- command: >-
docker compose exec -T admin \ docker compose exec -T admin \
curl -s -X POST http://127.0.0.1:8080/api/v1/token \ curl -s -X DELETE {{ mailu_api_base_url }}/token/{{ mailu_user_existing_token.id }} \
-H "Authorization: Bearer {{ mailu_global_api_token }}"
args:
chdir: "{{ mailu_compose_dir }}"
when:
- users[mailu_user].mailu_token is not defined
- mailu_user_existing_token is not none
register: mailu_token_delete
changed_when: mailu_token_delete.rc == 0
- name: "Create API token for {{ mailu_user }} if no local token defined"
command: >-
docker compose exec -T admin \
curl -s -X POST {{ mailu_api_base_url }}/token \
-H "Authorization: Bearer {{ mailu_global_api_token }}" \ -H "Authorization: Bearer {{ mailu_global_api_token }}" \
-H "Content-Type: application/json" \ -H "Content-Type: application/json" \
-d '{{ { -d '{{ {
@ -54,10 +67,11 @@
} | to_json }}' } | to_json }}'
args: args:
chdir: "{{ mailu_compose_dir }}" chdir: "{{ mailu_compose_dir }}"
when: users[mailu_user].mailu_token is not defined
register: mailu_token_creation register: mailu_token_creation
when: (mailu_user_existing_token | default('') | length) == 0 changed_when: mailu_token_creation.rc == 0
- name: "Add mailu_token to users dict if created" - name: "Set mailu_token for {{ mailu_user }} in users dict if newly created"
set_fact: set_fact:
users: >- users: >-
{{ users {{ users
@ -70,6 +84,4 @@
) )
}, recursive=True) }, recursive=True)
}} }}
when: when: users[mailu_user].mailu_token is not defined
- mailu_token_creation is defined
- (mailu_user_existing_token | default('') | length) == 0

View File

@ -31,7 +31,7 @@
vars: vars:
mailu_compose_dir: "{{ docker_compose.directories.instance }}" mailu_compose_dir: "{{ docker_compose.directories.instance }}"
mailu_domain: "{{ primary_domain }}" mailu_domain: "{{ primary_domain }}"
mailu_api_base_url: "{{ web_protocol }}://{{ domain }}/api/v1" mailu_api_base_url: "http://127.0.0.1:8080/api/v1"
mailu_global_api_token: "{{ applications.mailu.credentials.api_token }}" mailu_global_api_token: "{{ applications.mailu.credentials.api_token }}"
mailu_action: "{{ item.value.is_admin | default(false) | ternary('admin','user') }}" mailu_action: "{{ item.value.is_admin | default(false) | ternary('admin','user') }}"
mailu_user: "{{ item.key }}" mailu_user: "{{ item.key }}"

View File

@ -8,3 +8,9 @@
name: cleanup-docker-anonymous-volumes name: cleanup-docker-anonymous-volumes
when: mode_cleanup | bool when: mode_cleanup | bool
- name: "Show User Configuration (Important when mailu tokens are created automatic)"
debug:
msg:
users: "{{users}}"
when: enable_debug | bool