mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Add option -a to print all attributes
Make sure we don't print out binary data Remvoe any trailing white space when printing to avoid extra newlines
This commit is contained in:
parent
0a935d5be3
commit
a4143789da
@ -22,23 +22,51 @@ import sys
|
|||||||
from optparse import OptionParser
|
from optparse import OptionParser
|
||||||
import ipa.ipaclient as ipaclient
|
import ipa.ipaclient as ipaclient
|
||||||
import ipa.config
|
import ipa.config
|
||||||
|
import ipa.ipautil as ipautil
|
||||||
|
import base64
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
import xmlrpclib
|
import xmlrpclib
|
||||||
import kerberos
|
import kerberos
|
||||||
|
|
||||||
def usage():
|
def usage():
|
||||||
print "ipa-finduser <uid>"
|
print "ipa-finduser user"
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
def parse_options():
|
def parse_options():
|
||||||
parser = OptionParser()
|
parser = OptionParser()
|
||||||
|
|
||||||
|
parser.add_option("-a", "--all", action="store_true", dest="all",
|
||||||
|
help="Set user's e-mail address")
|
||||||
|
parser.add_option("--usage", action="store_true",
|
||||||
|
help="Program usage")
|
||||||
|
|
||||||
args = ipa.config.init_config(sys.argv)
|
args = ipa.config.init_config(sys.argv)
|
||||||
options, args = parser.parse_args(args)
|
options, args = parser.parse_args(args)
|
||||||
|
|
||||||
return options, args
|
return options, args
|
||||||
|
|
||||||
|
def wrap_binary_data(data):
|
||||||
|
"""Converts all binary data strings into base64-encoded objects for display
|
||||||
|
"""
|
||||||
|
if isinstance(data, str):
|
||||||
|
if ipautil.needs_base64(data):
|
||||||
|
return base64.encodestring(data)
|
||||||
|
else:
|
||||||
|
return data
|
||||||
|
elif isinstance(data, list) or isinstance(data,tuple):
|
||||||
|
retval = []
|
||||||
|
for value in data:
|
||||||
|
retval.append(wrap_binary_data(value))
|
||||||
|
return retval
|
||||||
|
elif isinstance(data, dict):
|
||||||
|
retval = {}
|
||||||
|
for (k,v) in data.iteritems():
|
||||||
|
retval[k] = wrap_binary_data(v)
|
||||||
|
return retval
|
||||||
|
else:
|
||||||
|
return data
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
user={}
|
user={}
|
||||||
options, args = parse_options()
|
options, args = parse_options()
|
||||||
@ -48,7 +76,10 @@ def main():
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
client = ipaclient.IPAClient()
|
client = ipaclient.IPAClient()
|
||||||
users = client.find_users(args[1], sattrs=['dn','uid','cn','homeDirectory'])
|
if options.all is None:
|
||||||
|
users = client.find_users(args[1], sattrs=['uid','cn','homeDirectory','loginshell'])
|
||||||
|
else:
|
||||||
|
users = client.find_users(args[1], sattrs=None)
|
||||||
|
|
||||||
counter = users[0]
|
counter = users[0]
|
||||||
users = users[1:]
|
users = users[1:]
|
||||||
@ -58,17 +89,19 @@ def main():
|
|||||||
|
|
||||||
for ent in users:
|
for ent in users:
|
||||||
attr = ent.attrList()
|
attr = ent.attrList()
|
||||||
|
attr.sort()
|
||||||
|
|
||||||
print "dn: " + ent.dn
|
if options.all is True:
|
||||||
|
print "dn: " + ent.dn
|
||||||
|
|
||||||
for a in attr:
|
for a in attr:
|
||||||
value = ent.getValues(a)
|
value = ent.getValues(a)
|
||||||
if isinstance(value,str):
|
if isinstance(value,str):
|
||||||
print a + ": " + value
|
print a + ": " + str(wrap_binary_data(value)).rstrip()
|
||||||
else:
|
else:
|
||||||
print a + ": "
|
print a + ": "
|
||||||
for l in value:
|
for l in value:
|
||||||
print "\t" + l
|
print "\t" + wrap_binary_data(l)
|
||||||
# blank line between results
|
# blank line between results
|
||||||
print
|
print
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user