Files
computer-playbook/roles/web-app-mailu/tasks/05_manage_user.yml
kevinveenbirkenbachandClaude Opus 4.8 4039313266 refactor(tasks): enforce and apply a single task-file numbering scheme
Add tests/lint/repository/test_task_file_numbering.py: numbered task
files use exactly two leading digits, a numbered *_core.yml must be
00_core.yml, per directory the numbers are unique/consecutive and start
at 01 (00 with a core file), numbered includes appear in ascending
order, and shared helpers live in tasks/utils/ instead of the numbered
chain.

Apply it across every role: rename NN_core.yml to 00_core.yml with a
consecutive down-shift of the siblings, move letter-suffix children into
a subdirectory named after their parent task, relocate helpers included
from more than one place into tasks/utils/, and update every reference
(include_tasks, path_absolute, .ansible-lint-ignore, requirement docs).
Legacy narration comments in the touched files are deleted; the upstream
xwiki.properties reference block opts out via nocheck. The unused
MAILU_IP6_PUBLIC var (only ever named in now-removed comments) is dropped.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-23 20:01:31 +02:00

51 lines
1.8 KiB
YAML

---
- name: "✅ Ensure user '{{ mailu_user_key }};{{ mailu_user_name }}@{{ MAILU_DOMAIN }}'"
ansible.builtin.shell: >
container exec -i {{ MAILU_ADMIN_CONTAINER_ADDRESS }}
flask mailu {{ mailu_action }}
{{ mailu_user_name | quote }}
{{ MAILU_DOMAIN | quote }}
--
{{ mailu_user_password | quote }}
register: mailu_user_result
retries: 12
delay: 10
until: >
mailu_user_result.rc == 0 or
('exists' in (mailu_user_result.stderr | lower)) or
('already' in (mailu_user_result.stderr | lower)) or
('duplicate' in (mailu_user_result.stderr | lower))
changed_when: mailu_user_result.rc == 0
failed_when: >
mailu_user_result.rc != 0 and
(
('exists' not in (mailu_user_result.stderr | lower)) and
('already' not in (mailu_user_result.stderr | lower)) and
('duplicate' not in (mailu_user_result.stderr | lower))
)
when: "'mailbox' in mailu_user_accounts"
no_log: "{{ MASK_CREDENTIALS_IN_LOGS | bool }}"
timeout: "{{ lookup('timeout', 120) | int }}"
- name: "🔧 Set password '{{ mailu_user_key }};{{ mailu_user_name }}@{{ MAILU_DOMAIN }}'"
ansible.builtin.shell: >
container exec -i {{ MAILU_ADMIN_CONTAINER_ADDRESS }}
flask mailu password
{{ mailu_user_name | quote }}
{{ MAILU_DOMAIN | quote }}
--
{{ mailu_user_password | quote }}
register: mailu_user_password_change
retries: 12
delay: 10
until: mailu_user_password_change.rc == 0
changed_when: mailu_user_password_change.rc == 0
failed_when: mailu_user_password_change.rc != 0
when: "'mailbox' in mailu_user_accounts"
no_log: "{{ MASK_CREDENTIALS_IN_LOGS | bool }}"
timeout: "{{ lookup('timeout', 120) | int }}"
- name: "📁 Create Mailu API Token for {{ mailu_user_name }}"
include_tasks: utils/manage/user_token.yml
when: "'bot' in mailu_user_roles"