---
# Ensure an admin user exists (when SSO is disabled) and can administer XWiki.
- name: "β¬οΈ XWIKI | Fetch REST session + form token (admin write ops)"
include_tasks: utils/rest_session.yml
- name: "β
XWIKI | Ensure user page exists: XWiki.{{ XWIKI_ADMIN_USER }}"
uri_retry:
url: "{{ [XWIKI_REST_XWIKI_PAGES, XWIKI_ADMIN_USER | urlencode] | url_join }}"
method: PUT
url_username: "{{ XWIKI_SUPERADMIN_USERNAME }}"
url_password: "{{ XWIKI_SUPERADMIN_PASSWORD }}"
force_basic_auth: true
status_code: [201, 202, 204, 200]
headers: "{{ xwiki_rest_headers_write }}"
body: "{{ lookup('template', 'xml/user/page.xml.j2') }}"
register: _user_page
- name: "π XWIKI | Check if XWikiUsers object exists"
uri_retry:
url: "{{ [XWIKI_REST_XWIKI_PAGES, XWIKI_ADMIN_USER | urlencode, 'objects'] | url_join }}?classname=XWiki.XWikiUsers"
method: GET
url_username: "{{ XWIKI_SUPERADMIN_USERNAME }}"
url_password: "{{ XWIKI_SUPERADMIN_PASSWORD }}"
force_basic_auth: true
status_code: [200, 404]
register: _users_obj_list
- name: "β XWIKI | Add XWiki.XWikiUsers object"
uri_retry:
url: "{{ [XWIKI_REST_XWIKI_PAGES, XWIKI_ADMIN_USER | urlencode, 'objects'] | url_join }}"
method: POST
url_username: "{{ XWIKI_SUPERADMIN_USERNAME }}"
url_password: "{{ XWIKI_SUPERADMIN_PASSWORD }}"
force_basic_auth: true
status_code: [201, 200]
headers: "{{ xwiki_rest_headers_write }}"
body: "{{ lookup('template', 'xml/user/xwikiusers_object.xml.j2') }}"
when: _users_obj_list.status == 404 or ('<object' not in (_users_obj_list.content | default('')))
register: _user_obj_created
- block:
- name: "β
XWIKI | Ensure {{ XWIKI_ADMIN_GROUP_PAGE }} page exists"
uri_retry:
url: "{{ [XWIKI_REST_XWIKI_PAGES, XWIKI_ADMIN_GROUP_PAGE] | url_join }}"
method: PUT
url_username: "{{ XWIKI_SUPERADMIN_USERNAME }}"
url_password: "{{ XWIKI_SUPERADMIN_PASSWORD }}"
force_basic_auth: true
status_code: [201, 202, 204, 200]
headers: "{{ xwiki_rest_headers_write }}"
body: "{{ lookup('template', 'xml/xwiki_admin_group/page.xml.j2') }}"
- name: "β
XWIKI | Ensure user is in {{ XWIKI_ADMIN_GROUP_PAGE }}"
uri_retry:
url: "{{ [XWIKI_REST_XWIKI_PAGES, XWIKI_ADMIN_GROUP_PAGE, 'objects'] | url_join }}"
method: POST
url_username: "{{ XWIKI_SUPERADMIN_USERNAME }}"
url_password: "{{ XWIKI_SUPERADMIN_PASSWORD }}"
force_basic_auth: true
status_code: [201, 200]
headers: "{{ xwiki_rest_headers_write }}"
body: "{{ lookup('template', 'xml/xwiki_admin_group/member_object.xml.j2') }}"
when: not (XWIKI_SSO_ENABLED | bool)