add group query
Some checks failed
Build empanada images for imagefactory / buildx (push) Failing after 10s
Build empanada container images for lorax / buildx (push) Successful in 2s

This commit is contained in:
Louis Abel 2024-07-31 07:20:07 -07:00
parent 04d1ec6a00
commit c2ab7d72c2
Signed by: label
GPG Key ID: 2A6975660E424560

View File

@ -447,7 +447,6 @@ class IPAQuery:
""" """
Gets us started on the query Gets us started on the query
""" """
#user_data = IPAQuery.user_data(api, name)
if control == 'user': if control == 'user':
IPAQuery.user_pull(api, name, deep) IPAQuery.user_pull(api, name, deep)
if control == 'group': if control == 'group':
@ -456,7 +455,7 @@ class IPAQuery:
@staticmethod @staticmethod
def user_pull(api, name, deep): def user_pull(api, name, deep):
""" """
Gets requested rbac info Gets requested user info
""" """
user_results = IPAQuery.user_data(api, name) user_results = IPAQuery.user_data(api, name)
uid = user_results['uid'][0] uid = user_results['uid'][0]
@ -486,13 +485,37 @@ memberOf:{groups}
""" """
print(outter) print(outter)
@staticmethod @staticmethod
def group_pull(api, name, deep): def group_pull(api, name, deep):
""" """
Gets requested rbac info Gets requested group info
""" """
print() group_results = IPAQuery.group_data(api, name)
gid = group_results['cn'][0]
gid_number = group_results['gidnumber'][0]
description = group_results['description'][0]
users_list = list(group_results['member_user'])
users_indirect = []
if 'memberindirect_user' in group_results:
users_indirect = list(group_results['memberindirect_user'])
users_list = users_list + users_indirect
users_list_names = []
for x in users_list:
user_results = IPAQuery.user_data(api, x)
first_name = ''
if 'givenname' in user_results:
first_name = user_results['givenname'][0]
last_name = user_results['sn'][0]
full_name = f'{first_name} {last_name}'
users_list_names.append(full_name)
users = ','.join(users_list)
users_names = "\n".join(users_list_names)
getent_string = f'{gid}:x:{gid_number}:{users}'
if not deep:
print(getent_string)
else:
print(users_names)
@staticmethod @staticmethod
def user_data(api, user): def user_data(api, user):