---
- name: "π Check whether Friendica administrator user already exists"
shell: >-
container exec -i --user {{ FRIENDICA_USER }}
--workdir {{ FRIENDICA_APPLICATION_DIR }}
{{ FRIENDICA_LOCAL_CID | quote }}
{{ FRIENDICA_APPLICATION_DIR }}/bin/console user search nick {{ FRIENDICA_ADMIN_USERNAME | quote }}
delegate_to: "{{ FRIENDICA_HOST_NODE }}" # nocheck: include-uniform-apply-keyword
register: friendica_admin_search
changed_when: false
failed_when: false
- name: "π Pre-create Friendica administrator user"
shell: >-
container exec -i --user {{ FRIENDICA_USER }}
--workdir {{ FRIENDICA_APPLICATION_DIR }}
{{ FRIENDICA_LOCAL_CID | quote }}
{{ FRIENDICA_APPLICATION_DIR }}/bin/console user add
"{{ lookup('users', 'platform_administrator').firstname | default('Administrator') }}"
"{{ FRIENDICA_ADMIN_USERNAME }}"
"{{ lookup('users', 'platform_administrator').email }}"
en
delegate_to: "{{ FRIENDICA_HOST_NODE }}"
when: FRIENDICA_ADMIN_USERNAME not in friendica_admin_search.stdout
register: friendica_admin_create
changed_when: friendica_admin_create.rc == 0
- name: "π Converge the Friendica administrator password"
ansible.builtin.shell: >- # nocheck: container-exec-resolver FRIENDICA_LOCAL_CID resolved at delegate_to runtime
container exec -i -e FRIENDICA_ADMIN_NICKNAME -e FRIENDICA_ADMIN_PASSWORD
--user {{ FRIENDICA_USER }} --workdir {{ FRIENDICA_APPLICATION_DIR }}
{{ FRIENDICA_LOCAL_CID | quote }} php --
args:
stdin: "{{ lookup('file', role_path + '/files/php/converge_admin_password.php') }}"
environment:
FRIENDICA_ADMIN_NICKNAME: "{{ FRIENDICA_ADMIN_USERNAME }}"
FRIENDICA_ADMIN_PASSWORD: "{{ lookup('users', 'platform_administrator').password }}"
delegate_to: "{{ FRIENDICA_HOST_NODE }}"
register: friendica_admin_password
changed_when: "'PASSWORD_SET' in friendica_admin_password.stdout"
failed_when: >-
friendica_admin_password.rc != 0
or friendica_admin_password.stdout is not search('(?m)^PASSWORD_(SET|KEPT)$')
no_log: "{{ MASK_CREDENTIALS_IN_LOGS | bool }}"