diff options
| author | Jason Gerard DeRose <jderose@redhat.com> | 2008-10-21 17:35:42 -0600 |
|---|---|---|
| committer | Jason Gerard DeRose <jderose@redhat.com> | 2008-10-21 17:35:42 -0600 |
| commit | f8ffede3b9443bf92e529fe2be20454f52df10c9 (patch) | |
| tree | 0e55b3a38f71efa9fd0498eb546630838deba9d9 /ipa_server/servercore.py | |
| parent | 5e0a0fa745433ef11d7c4ce2afbcbef401c96645 (diff) | |
| parent | 245969858d8484428db1edbff8d6bd36587fb144 (diff) | |
| download | freeipa-f8ffede3b9443bf92e529fe2be20454f52df10c9.tar.gz freeipa-f8ffede3b9443bf92e529fe2be20454f52df10c9.tar.xz freeipa-f8ffede3b9443bf92e529fe2be20454f52df10c9.zip | |
Merge branch 'master' of git://git.engineering.redhat.com/users/rcritten/freeipa2
Diffstat (limited to 'ipa_server/servercore.py')
| -rw-r--r-- | ipa_server/servercore.py | 46 |
1 files changed, 26 insertions, 20 deletions
diff --git a/ipa_server/servercore.py b/ipa_server/servercore.py index 1f41d410f..e69967a90 100644 --- a/ipa_server/servercore.py +++ b/ipa_server/servercore.py @@ -389,7 +389,9 @@ def mark_entry_inactive (dn): return res def add_member_to_group(member_dn, group_dn): - """Add a member to an existing group.""" + """ + Add a member to an existing group. + """ # logging.info("IPA: add_member_to_group '%s' to '%s'" % (member_dn, group_dn)) if member_dn.lower() == group_dn.lower(): # You can't add a group to itself @@ -404,12 +406,12 @@ def add_member_to_group(member_dn, group_dn): if not member_entry: raise errors.NotFound - if group.get('member') is not None: - if isinstance(group.get('member'),basestring): - group['member'] = [group['member']] - group['member'].append(member_dn) - else: - group['member'] = member_dn + # Add the new member to the group member attribute + members = group.get('member', []) + if isinstance(members, basestring): + members = [members] + members.append(member_dn) + group['member'] = members try: return update_entry(group) @@ -430,20 +432,24 @@ def remove_member_from_group(member_dn, group_dn=None): """ # logging.info("IPA: remove_member_from_group '%s' from '%s'" % (member_dn, group_dn)) - if group.get('member') is not None: - if isinstance(group.get('member'),basestring): - group['member'] = [group['member']] - for i in range(len(group['member'])): - group['member'][i] = ipaldap.IPAdmin.normalizeDN(group['member'][i]) - try: - group['member'].remove(member_dn) - except ValueError: - # member is not in the group - # FIXME: raise more specific error? - raise errors.NotGroupMember - else: - # Nothing to do if the group has no members + members = group.get('member', False) + if not members: + raise errors.NotGroupMember + + if isinstance(members,basestring): + members = [members] + for i in range(len(members)): + members[i] = ipaldap.IPAdmin.normalizeDN(members[i]) + try: + members.remove(member_dn) + except ValueError: + # member is not in the group + # FIXME: raise more specific error? raise errors.NotGroupMember + except Exception, e: + raise e + + group['member'] = members try: return update_entry(group) |
