|
101 | 101 | description: Base DN where groups reside. |
102 | 102 | required: false |
103 | 103 | type: str |
| 104 | + use_netgroups: |
| 105 | + description: |
| 106 | + - Whether to use NIS netgroups instead of posix groups, not valid for I(server_type=active_directory) |
| 107 | + - "Deprecated: The use_netgroups parameter is deprecated with Foreman 3.16 in favor of I(ldap_group_membership) and will be removed in a future release." |
| 108 | + required: false |
| 109 | + type: bool |
104 | 110 | ldap_group_membership: |
105 | 111 | description: Which group membership method to use, not valid for I(server_type=active_directory). Option I(rfc4519) is valid only for I(server_type=posix). |
106 | 112 | required: false |
@@ -215,17 +221,26 @@ def main(): |
215 | 221 | groups_base=dict(), |
216 | 222 | server_type=dict(choices=["free_ipa", "active_directory", "posix"]), |
217 | 223 | ldap_filter=dict(), |
| 224 | + use_netgroups=dict(type='bool'), |
218 | 225 | ldap_group_membership=dict(choices=["posix", "nis_netgroups", "rfc4519"]), |
219 | 226 | ), |
220 | 227 | required_if=[['onthefly_register', True, ['attr_login', 'attr_firstname', 'attr_lastname', 'attr_mail']]], |
221 | 228 | ) |
222 | 229 |
|
223 | 230 | # additional parameter checks |
224 | | - server_type = module.foreman_params['server_type'] |
| 231 | + use_netgroups = module.foreman_params.get('use_netgroups') |
| 232 | + ldap_group_membership = module.foreman_params.get('ldap_group_membership') |
| 233 | + if use_netgroups is not None: |
| 234 | + expected_ldap_group_membership = ['nis_netgroups'] if use_netgroups == True else ['posix', 'rfc4519'] |
| 235 | + if ldap_group_membership is None: |
| 236 | + module.foreman_params['ldap_group_membership'] = expected_ldap_group_membership[0] |
| 237 | + elif ldap_group_membership not in expected_ldap_group_membership: |
| 238 | + module.fail_json(msg=f'ldap_group_membership={{ ldap_group_membership }} cannot be used when use_netgroups={{ use_netgroups }}') |
| 239 | + |
| 240 | + server_type = module.foreman_params.get('server_type', 'posix') |
225 | 241 | if 'ldap_group_membership' in module.foreman_params and server_type == 'active_directory' |
226 | 242 | module.fail_json(msg='ldap_group_membership cannot be used when server_type=active_directory') |
227 | 243 |
|
228 | | - |
229 | 244 | if 'ldap_group_membership' in module.foreman_params and module.foreman_params['ldap_group_membership'] == 'rfc4519' and server_type != 'posix': |
230 | 245 | module.fail_json(msg=f'ldap_group_membership=rfc4519 cannot be used when server_type={{ server_type }}') |
231 | 246 |
|
|
0 commit comments