diff options
Diffstat (limited to 'ipa-admintools/ipa-finduser')
-rw-r--r-- | ipa-admintools/ipa-finduser | 40 |
1 files changed, 27 insertions, 13 deletions
diff --git a/ipa-admintools/ipa-finduser b/ipa-admintools/ipa-finduser index 205b47ce..a54e141e 100644 --- a/ipa-admintools/ipa-finduser +++ b/ipa-admintools/ipa-finduser @@ -18,12 +18,14 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +import sys from optparse import OptionParser -import ipa -import ipa.rpcclient -import base64 +import ipa.ipaclient as ipaclient +import ipa.config + import sys import xmlrpclib +import kerberos def usage(): print "ipa-finduser <uid>" @@ -32,28 +34,40 @@ def usage(): def parse_options(): parser = OptionParser() - (options, args) = parser.parse_args() + args = ipa.config.init_config(sys.argv) + options, args = parser.parse_args(args) return options, args def main(): user={} - (options, args) = parse_options() + options, args = parse_options() - if len(args) != 1: + if len(args) != 2: usage() try: - ent = ipa.rpcclient.get_user(args[0]) - for name, value in ent.items(): - if isinstance(value, str): - print name + ": " + value + client = ipaclient.IPAClient() + ent = client.get_user(args[1]) + attr = ent.attrList() + + print "dn: " + ent.dn + + for a in attr: + value = ent.getValues(a) + if isinstance(value,str): + print a + ": " + value else: - print name + ": " - for x in value: - print "\t" + x + print a + ": " + for l in value: + print "\t" + l + except xmlrpclib.Fault, fault: print fault.faultString + return 1 + except kerberos.GSSError, e: + print "Could not initialize GSSAPI: %s/%s" % (e[0][0][0], e[0][1][0]) + return 1 return 0 |