initial role commit
This commit is contained in:
58
tasks/manage_users.yaml
Normal file
58
tasks/manage_users.yaml
Normal file
@@ -0,0 +1,58 @@
|
||||
---
|
||||
- name: Get list of users
|
||||
community.docker.docker_container_exec:
|
||||
container: gitea-gitea-1
|
||||
command: /bin/bash -c "gitea admin user list"
|
||||
register: user_list
|
||||
failed_when: false
|
||||
changed_when: false
|
||||
when: gitea_users | length > 0
|
||||
|
||||
- name: Extract existing usernames
|
||||
ansible.builtin.set_fact:
|
||||
gitea_existing_users: "{{ user_list.stdout_lines[1:] | map('regex_replace', '^\\d+\\s+(\\S+)\\s+.*$', '\\1') | list | default([]) }}"
|
||||
when:
|
||||
- gitea_users | length > 0
|
||||
- user_list.stdout_lines | default([]) | length > 1
|
||||
|
||||
- name: Create Gitea users
|
||||
community.docker.docker_container_exec:
|
||||
container: gitea-gitea-1
|
||||
command: >
|
||||
/bin/bash -c "gitea admin user create
|
||||
--username {{ user.username }}
|
||||
--email {{ user.email }}
|
||||
--password {{ user.password }}
|
||||
--must-change-password={{ user.must_change_password | default(false) }}
|
||||
--admin={{ user.admin | default(false) }}"
|
||||
register: _gitea_user_result
|
||||
failed_when:
|
||||
- '"successfully created" not in _gitea_user_result.stdout'
|
||||
changed_when:
|
||||
- '"successfully created!" in _gitea_user_result.stdout'
|
||||
when:
|
||||
- user.username not in gitea_existing_users | default([]) and user.state | default('present') == 'present'
|
||||
loop: "{{ gitea_users }}"
|
||||
loop_control:
|
||||
label: "user={{ user.username }}"
|
||||
loop_var: user
|
||||
# no_log: true # Avoid logging passwords
|
||||
|
||||
|
||||
- name: Remove gitea users
|
||||
community.docker.docker_container_exec:
|
||||
container: gitea-gitea-1
|
||||
command: >
|
||||
/bin/bash -c "gitea admin user delete
|
||||
--username {{ user.username }}
|
||||
--email {{ user.email }}"
|
||||
register: _gitea_user_del_result
|
||||
failed_when:
|
||||
- '"error" in _gitea_user_del_result.stdout'
|
||||
changed_when: "user.username in gitea_existing_users"
|
||||
when: "user.username in gitea_existing_users | default([]) and user.state | default('present') == 'absent'"
|
||||
loop: "{{ gitea_users }}"
|
||||
loop_control:
|
||||
label: "user={{ user.username }}"
|
||||
loop_var: user
|
||||
|
||||
Reference in New Issue
Block a user