summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ipalib/plugins/user.py13
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
)