Skip to content

Commit 816bdbb

Browse files
authored
Skip LDAP group members with no uid attribute (#76)
1 parent 8bf1274 commit 816bdbb

File tree

3 files changed

+13
-2
lines changed

3 files changed

+13
-2
lines changed

CHANGES.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
Changelog
22
=========
33

4+
Version 0.5.3
5+
-------------
6+
7+
- Skip LDAP group members that do not have the specified ``uid`` attribute set instead
8+
of failing with an error
9+
410
Version 0.5.2
511
-------------
612

flask_multipass/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from .identity import IdentityProvider
1414

1515

16-
__version__ = '0.5.2'
16+
__version__ = '0.5.3'
1717
__all__ = ('Multipass', 'AuthProvider', 'IdentityProvider', 'AuthInfo', 'IdentityInfo', 'Group', 'MultipassException',
1818
'AuthenticationFailed', 'IdentityRetrievalFailed', 'GroupRetrievalFailed', 'NoSuchUser',
1919
'InvalidCredentials')

flask_multipass/providers/ldap/providers.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,12 @@ def get_members(self):
116116
user_filter = build_user_search_filter({self.ldap_settings['member_of_attr']: {group_dn}}, exact=True)
117117
for _, user_data in self.provider._search_users(user_filter):
118118
user_data = to_unicode(user_data)
119-
yield IdentityInfo(self.provider, identifier=user_data[self.ldap_settings['uid']][0], **user_data)
119+
try:
120+
identifier = user_data[self.ldap_settings['uid']][0]
121+
except KeyError:
122+
# user does not have an identifier -> skip it
123+
continue
124+
yield IdentityInfo(self.provider, identifier=identifier, **user_data)
120125
group_filter = build_group_search_filter({self.ldap_settings['member_of_attr']: {group_dn}}, exact=True)
121126
subgroups = list(self.provider._search_groups(group_filter))
122127
try:

0 commit comments

Comments
 (0)