summaryrefslogtreecommitdiffstats
path: root/ipalib/plugins/group.py
diff options
context:
space:
mode:
authorAlexander Bokovoy <abokovoy@redhat.com>2014-01-16 20:31:37 +0200
committerMartin Kosek <mkosek@redhat.com>2014-01-20 09:48:42 +0100
commitfcd9a66b16cc76ed03ca6b688b4478b7858a0af8 (patch)
tree7c6c52f0fcf3ad60c2e071269fda84169000b1bd /ipalib/plugins/group.py
parentbe2c5d22b37b4673ac0bdeb8cab01be19fab288a (diff)
downloadfreeipa-fcd9a66b16cc76ed03ca6b688b4478b7858a0af8.tar.gz
freeipa-fcd9a66b16cc76ed03ca6b688b4478b7858a0af8.tar.xz
freeipa-fcd9a66b16cc76ed03ca6b688b4478b7858a0af8.zip
group-show: resolve external members of the groups
Perform SID to name conversion for existing external members of the groups if trust is configured. https://bugzilla.redhat.com/show_bug.cgi?id=1054391 https://fedorahosted.org/freeipa/ticket/4123
Diffstat (limited to 'ipalib/plugins/group.py')
-rw-r--r--ipalib/plugins/group.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/ipalib/plugins/group.py b/ipalib/plugins/group.py
index 02eeb10ca..dac55003e 100644
--- a/ipalib/plugins/group.py
+++ b/ipalib/plugins/group.py
@@ -387,6 +387,21 @@ api.register(group_find)
class group_show(LDAPRetrieve):
__doc__ = _('Display information about a named group.')
has_output_params = LDAPRetrieve.has_output_params + (ipaexternalmember_param,)
+ def post_callback(self, ldap, dn, entry_attrs, *keys, **options):
+ assert isinstance(dn, DN)
+ if ('ipaexternalmember' in entry_attrs and
+ len(entry_attrs['ipaexternalmember']) > 0 and
+ 'trust_resolve' in self.Command and
+ not options.get('raw', False)):
+ sids = entry_attrs['ipaexternalmember']
+ result = self.Command.trust_resolve(sids=sids)
+ for entry in result['result']:
+ try:
+ idx = sids.index(entry['sid'][0])
+ sids[idx] = entry['name'][0]
+ except ValueError:
+ pass
+ return dn
api.register(group_show)