mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-22 12:50:22 -07:00
* fixes various issues related to updating an ...
... existing gitlab user, in detail:
- fixes updating admin status not working
- fixes user passwords not updated
- fixes confirmation skipping param ignored for user updates
- added tests for code changes
* fixing sanity issues
* fixing sanity issues 02
* fixing sanity issues 03
* fixing sanity issues 04
* fixing unit test failures
* fixing unit test failures 02
* add changelog fragment
* fixing unit test failures 03
* forgot to add changelog fragment
* fix changelog sanity issues
* fix changelog sanity issues 02
* incorporate review suggestions
Co-authored-by: Mirko Wilhelmi <Mirko.Wilhelmi@sma.de>
(cherry picked from commit c03ae754d2
)
Co-authored-by: morco <thegreatwiper@web.de>
This commit is contained in:
parent
c506375f2a
commit
a90e2c8002
4 changed files with 271 additions and 22 deletions
|
@ -10,25 +10,25 @@
|
|||
|
||||
- name: Clean up gitlab user
|
||||
gitlab_user:
|
||||
server_url: "{{ gitlab_host }}"
|
||||
api_url: "{{ gitlab_host }}"
|
||||
name: ansible_test_user
|
||||
username: ansible_test_user
|
||||
password: Secr3tPassw00rd
|
||||
email: root@localhost
|
||||
validate_certs: false
|
||||
login_token: "{{ gitlab_login_token }}"
|
||||
api_token: "{{ gitlab_login_token }}"
|
||||
state: absent
|
||||
|
||||
|
||||
- name: Create gitlab user
|
||||
gitlab_user:
|
||||
server_url: "{{ gitlab_host }}"
|
||||
api_url: "{{ gitlab_host }}"
|
||||
email: "{{ gitlab_user_email }}"
|
||||
name: "{{ gitlab_user }}"
|
||||
username: "{{ gitlab_user }}"
|
||||
password: "{{ gitlab_user_pass }}"
|
||||
validate_certs: False
|
||||
login_token: "{{ gitlab_login_token }}"
|
||||
api_token: "{{ gitlab_login_token }}"
|
||||
state: present
|
||||
register: gitlab_user_state
|
||||
|
||||
|
@ -39,13 +39,13 @@
|
|||
|
||||
- name: Create gitlab user again
|
||||
gitlab_user:
|
||||
server_url: "{{ gitlab_host }}"
|
||||
api_url: "{{ gitlab_host }}"
|
||||
email: root@localhost
|
||||
name: ansible_test_user
|
||||
username: ansible_test_user
|
||||
password: Secr3tPassw00rd
|
||||
validate_certs: False
|
||||
login_token: "{{ gitlab_login_token }}"
|
||||
api_token: "{{ gitlab_login_token }}"
|
||||
state: present
|
||||
register: gitlab_user_state_again
|
||||
|
||||
|
@ -53,3 +53,198 @@
|
|||
assert:
|
||||
that:
|
||||
- gitlab_user_state_again is not changed
|
||||
- gitlab_user_state_again.user.is_admin == False
|
||||
|
||||
|
||||
- name: Update User Test => Make User Admin
|
||||
gitlab_user:
|
||||
api_url: "{{ gitlab_host }}"
|
||||
email: "{{ gitlab_user_email }}"
|
||||
name: "{{ gitlab_user }}"
|
||||
username: "{{ gitlab_user }}"
|
||||
isadmin: true
|
||||
validate_certs: False
|
||||
api_token: "{{ gitlab_login_token }}"
|
||||
state: present
|
||||
register: gitlab_user_state
|
||||
|
||||
- name: Check if user is admin now
|
||||
assert:
|
||||
that:
|
||||
- gitlab_user_state is changed
|
||||
- gitlab_user_state.user.is_admin == True
|
||||
|
||||
- name: Update User Test => Make User Admin (Again)
|
||||
gitlab_user:
|
||||
api_url: "{{ gitlab_host }}"
|
||||
email: "{{ gitlab_user_email }}"
|
||||
name: "{{ gitlab_user }}"
|
||||
username: "{{ gitlab_user }}"
|
||||
isadmin: true
|
||||
validate_certs: False
|
||||
api_token: "{{ gitlab_login_token }}"
|
||||
state: present
|
||||
register: gitlab_user_state
|
||||
|
||||
- name: Check state is not changed
|
||||
assert:
|
||||
that:
|
||||
- gitlab_user_state is not changed
|
||||
- gitlab_user_state.user.is_admin == True
|
||||
|
||||
- name: Update User Test => Remove Admin Rights
|
||||
gitlab_user:
|
||||
api_url: "{{ gitlab_host }}"
|
||||
email: "{{ gitlab_user_email }}"
|
||||
name: "{{ gitlab_user }}"
|
||||
username: "{{ gitlab_user }}"
|
||||
isadmin: false
|
||||
validate_certs: False
|
||||
api_token: "{{ gitlab_login_token }}"
|
||||
state: present
|
||||
register: gitlab_user_state
|
||||
|
||||
- name: Check if user is not admin anymore
|
||||
assert:
|
||||
that:
|
||||
- gitlab_user_state is changed
|
||||
- gitlab_user_state.user.is_admin == False
|
||||
|
||||
|
||||
- name: Update User Test => Try Changing Mail without Confirmation Skipping
|
||||
gitlab_user:
|
||||
api_url: "{{ gitlab_host }}"
|
||||
email: foo@bar.baz
|
||||
name: "{{ gitlab_user }}"
|
||||
username: "{{ gitlab_user }}"
|
||||
confirm: True
|
||||
validate_certs: False
|
||||
api_token: "{{ gitlab_login_token }}"
|
||||
state: present
|
||||
register: gitlab_user_state
|
||||
|
||||
- name: Check that eMail is unchanged (Only works with confirmation skipping)
|
||||
assert:
|
||||
that:
|
||||
- gitlab_user_state is changed
|
||||
- gitlab_user_state.user.email == gitlab_user_email
|
||||
|
||||
- name: Update User Test => Change Mail with Confirmation Skip
|
||||
gitlab_user:
|
||||
api_url: "{{ gitlab_host }}"
|
||||
email: foo@bar.baz
|
||||
name: "{{ gitlab_user }}"
|
||||
username: "{{ gitlab_user }}"
|
||||
confirm: false
|
||||
validate_certs: False
|
||||
api_token: "{{ gitlab_login_token }}"
|
||||
state: present
|
||||
register: gitlab_user_state
|
||||
|
||||
- name: Check that mail has changed now
|
||||
assert:
|
||||
that:
|
||||
- gitlab_user_state is changed
|
||||
- gitlab_user_state.user.email == 'foo@bar.baz'
|
||||
|
||||
- name: Update User Test => Change Mail with Confirmation Skip (Again)
|
||||
gitlab_user:
|
||||
api_url: "{{ gitlab_host }}"
|
||||
email: foo@bar.baz
|
||||
name: "{{ gitlab_user }}"
|
||||
username: "{{ gitlab_user }}"
|
||||
confirm: false
|
||||
validate_certs: False
|
||||
api_token: "{{ gitlab_login_token }}"
|
||||
state: present
|
||||
register: gitlab_user_state
|
||||
|
||||
- name: Check state is not changed
|
||||
assert:
|
||||
that:
|
||||
- gitlab_user_state is not changed
|
||||
- gitlab_user_state.user.email == 'foo@bar.baz'
|
||||
|
||||
- name: Update User Test => Revert to original Mail Address
|
||||
gitlab_user:
|
||||
api_url: "{{ gitlab_host }}"
|
||||
email: "{{ gitlab_user_email }}"
|
||||
name: "{{ gitlab_user }}"
|
||||
username: "{{ gitlab_user }}"
|
||||
confirm: false
|
||||
validate_certs: False
|
||||
api_token: "{{ gitlab_login_token }}"
|
||||
state: present
|
||||
register: gitlab_user_state
|
||||
|
||||
- name: Check that reverting mail back to original has worked
|
||||
assert:
|
||||
that:
|
||||
- gitlab_user_state is changed
|
||||
- gitlab_user_state.user.email == gitlab_user_email
|
||||
|
||||
|
||||
- name: Update User Test => Change User Password
|
||||
gitlab_user:
|
||||
api_url: "{{ gitlab_host }}"
|
||||
validate_certs: False
|
||||
|
||||
# note: the only way to check if a password really is what it is expected
|
||||
# to be is to use it for login, so we use it here instead of the
|
||||
# default token assuming that a user can always change its own password
|
||||
api_username: "{{ gitlab_user }}"
|
||||
api_password: "{{ gitlab_user_pass }}"
|
||||
|
||||
email: "{{ gitlab_user_email }}"
|
||||
name: "{{ gitlab_user }}"
|
||||
username: "{{ gitlab_user }}"
|
||||
password: new-super-password
|
||||
state: present
|
||||
register: gitlab_user_state
|
||||
|
||||
- name: Check PW setting return state
|
||||
assert:
|
||||
that:
|
||||
# note: there is no way to determine if a password has changed or
|
||||
# not, so it can only be always yellow or always green, we
|
||||
# decided for always green for now
|
||||
- gitlab_user_state is not changed
|
||||
|
||||
- name: Update User Test => Reset User Password
|
||||
gitlab_user:
|
||||
api_url: "{{ gitlab_host }}"
|
||||
validate_certs: False
|
||||
|
||||
api_username: "{{ gitlab_user }}"
|
||||
api_password: new-super-password
|
||||
|
||||
email: "{{ gitlab_user_email }}"
|
||||
name: "{{ gitlab_user }}"
|
||||
username: "{{ gitlab_user }}"
|
||||
password: "{{ gitlab_user_pass }}"
|
||||
state: present
|
||||
register: gitlab_user_state
|
||||
|
||||
- name: Check PW setting return state (Again)
|
||||
assert:
|
||||
that:
|
||||
- gitlab_user_state is not changed
|
||||
|
||||
- name: Update User Test => Check that password was reset
|
||||
gitlab_user:
|
||||
api_url: "{{ gitlab_host }}"
|
||||
validate_certs: False
|
||||
|
||||
api_username: "{{ gitlab_user }}"
|
||||
api_password: "{{ gitlab_user_pass }}"
|
||||
|
||||
email: "{{ gitlab_user_email }}"
|
||||
name: "{{ gitlab_user }}"
|
||||
username: "{{ gitlab_user }}"
|
||||
state: present
|
||||
register: gitlab_user_state
|
||||
|
||||
- name: Check PW setting return state (Reset)
|
||||
assert:
|
||||
that:
|
||||
- gitlab_user_state is not changed
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue