diff options
-rw-r--r-- | ipalib/plugins/user.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/ipalib/plugins/user.py b/ipalib/plugins/user.py index 5841d7a01..1cd28c9d8 100644 --- a/ipalib/plugins/user.py +++ b/ipalib/plugins/user.py @@ -51,6 +51,7 @@ from ipalib import api, errors from ipalib import Flag, Int, Password, Str from ipalib.plugins.baseldap import * from ipalib import _, ngettext +from ipalib import util class user(LDAPObject): @@ -241,6 +242,18 @@ class user_find(LDAPSearch): Search for users. """ + takes_options = ( + Flag('whoami', + label=_('Self'), + doc=_('Display user record for current Kerberos principal'), + ), + ) + def pre_callback(self, ldap, filter, entry_attrs, attrs_list, *keys, **options): + if options.get('whoami'): + return "(&(objectclass=posixaccount)(krbprincipalname=%s))"%\ + util.get_current_principal() + return filter + msg_summary = ngettext( '%(count)d user matched', '%(count)d users matched', 0 ) |