diff --git a/apricot/ldap/oauth_ldap_entry.py b/apricot/ldap/oauth_ldap_entry.py index d945ef0..6845a33 100644 --- a/apricot/ldap/oauth_ldap_entry.py +++ b/apricot/ldap/oauth_ldap_entry.py @@ -83,3 +83,6 @@ def _bind(password: bytes) -> "OAuthLDAPEntry": raise LDAPInvalidCredentials(msg) return defer.maybeDeferred(_bind, password) + + def list_children(self) -> "list[OAuthLDAPEntry]": + return [cast(OAuthLDAPEntry, entry) for entry in self._children.values()] diff --git a/apricot/ldap/oauth_ldap_tree.py b/apricot/ldap/oauth_ldap_tree.py index 136ce31..88333ec 100644 --- a/apricot/ldap/oauth_ldap_tree.py +++ b/apricot/ldap/oauth_ldap_tree.py @@ -67,15 +67,29 @@ def root(self) -> OAuthLDAPEntry: # Add groups to the groups OU if self.debug: - log.msg(f"Adding {len(oauth_adaptor.groups)} groups to the LDAP tree.") + log.msg( + f"Attempting to add {len(oauth_adaptor.groups)} groups to the LDAP tree." + ) for group_attrs in oauth_adaptor.groups: groups_ou.add_child(f"CN={group_attrs.cn}", group_attrs.to_dict()) + if self.debug: + children = groups_ou.list_children() + for child in children: + log.msg(f"... {child.dn.getText()}") + log.msg(f"There are {len(children)} groups in the LDAP tree.") # Add users to the users OU if self.debug: - log.msg(f"Adding {len(oauth_adaptor.users)} users to the LDAP tree.") + log.msg( + f"Attempting to add {len(oauth_adaptor.users)} users to the LDAP tree." + ) for user_attrs in oauth_adaptor.users: users_ou.add_child(f"CN={user_attrs.cn}", user_attrs.to_dict()) + if self.debug: + children = users_ou.list_children() + for child in children: + log.msg(f"... {child.dn.getText()}") + log.msg(f"There are {len(children)} users in the LDAP tree.") # Set last updated time log.msg("Finished building LDAP tree.") diff --git a/apricot/oauth/oauth_data_adaptor.py b/apricot/oauth/oauth_data_adaptor.py index 701e55a..2263af5 100644 --- a/apricot/oauth/oauth_data_adaptor.py +++ b/apricot/oauth/oauth_data_adaptor.py @@ -128,6 +128,11 @@ def _retrieve_entries( for parent_dict in oauth_groups + user_primary_groups + groups_of_groups if child_dn in parent_dict["member"] ] + if self.debug: + for group_name in child_dict["memberOf"]: + log.msg( + f"... user '{child_dict['cn']}' is a member of '{group_name}'" + ) # Ensure memberOf is set correctly for groups for child_dict in oauth_groups + user_primary_groups + groups_of_groups: @@ -137,6 +142,11 @@ def _retrieve_entries( for parent_dict in oauth_groups + user_primary_groups + groups_of_groups if child_dn in parent_dict["member"] ] + if self.debug: + for group_name in child_dict["memberOf"]: + log.msg( + f"... group '{child_dict['cn']}' is a member of '{group_name}'" + ) # Annotate group and user dicts with the appropriate LDAP classes annotated_groups = [