mysql_role: don't add members to a role when creating the role and "detach_members: true" is set, add integration test

This commit is contained in:
Felix Hamme 2022-05-20 09:47:15 +02:00
commit 394a7bbae1
3 changed files with 30 additions and 0 deletions

View file

@ -1067,6 +1067,8 @@ def main():
if not role.exists:
if subtract_privs:
priv = None # avoid granting unwanted privileges
if detach_members:
members = None # avoid adding unwanted members
changed = role.add(members, priv, module.check_mode, admin,
set_default_role_all)

View file

@ -15,3 +15,4 @@ nonexistent: user3
role0: role0
role1: role1
role2: role2
role3: role3

View file

@ -1248,6 +1248,32 @@
that:
- result is not changed
- name: '"detach" users when creating a new role'
<<: *task_params
mysql_role:
<<: *mysql_params
name: '{{ role3 }}'
state: present
detach_members: yes
members:
- '{{ user1 }}@localhost'
- name: Check the role was created
assert:
that:
- result is changed
- name: Check grants
<<: *task_params
mysql_query:
<<: *mysql_params
query: "SHOW GRANTS FOR {{ user1 }}@localhost"
- name: asssert detach_members did not add a user to the role
assert:
that:
- "'{{ role3 }}' not in result.query_result.0.0['Grants for {{ user1 }}@localhost']"
# ##########
# Test privs
# ##########
@ -1561,3 +1587,4 @@
loop:
- '{{ role0 }}'
- test
- '{{ role3 }}'