diff options
author | Alexander Bokovoy <abokovoy@redhat.com> | 2014-01-16 20:31:37 +0200 |
---|---|---|
committer | Martin Kosek <mkosek@redhat.com> | 2014-01-20 09:48:42 +0100 |
commit | fcd9a66b16cc76ed03ca6b688b4478b7858a0af8 (patch) | |
tree | 7c6c52f0fcf3ad60c2e071269fda84169000b1bd /ipalib/plugins | |
parent | be2c5d22b37b4673ac0bdeb8cab01be19fab288a (diff) | |
download | freeipa-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')
-rw-r--r-- | ipalib/plugins/group.py | 15 |
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) |