diff options
author | Kevin McCarthy <kmccarth@redhat.com> | 2007-08-20 10:50:11 -0700 |
---|---|---|
committer | Kevin McCarthy <kmccarth@redhat.com> | 2007-08-20 10:50:11 -0700 |
commit | 66d3f1e730ed5e1bc80264b2a5d7f4fb16c1d22c (patch) | |
tree | 2d929adc00cad0701e87d96afc282733e7e6f0ef /ipa-server/xmlrpc-server | |
parent | 5f0f192ae3c8aa44868b7b3b86e71523fc55515b (diff) | |
download | freeipa-66d3f1e730ed5e1bc80264b2a5d7f4fb16c1d22c.tar.gz freeipa-66d3f1e730ed5e1bc80264b2a5d7f4fb16c1d22c.tar.xz freeipa-66d3f1e730ed5e1bc80264b2a5d7f4fb16c1d22c.zip |
Embed origiginal values inside user, and have update_user pass in a user
object. Based on rcrit's original patch.
Push scalar to list value conversion inside funcs.py.
Diffstat (limited to 'ipa-server/xmlrpc-server')
-rw-r--r-- | ipa-server/xmlrpc-server/funcs.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/ipa-server/xmlrpc-server/funcs.py b/ipa-server/xmlrpc-server/funcs.py index a182d4b26..6f7e4e66b 100644 --- a/ipa-server/xmlrpc-server/funcs.py +++ b/ipa-server/xmlrpc-server/funcs.py @@ -363,6 +363,17 @@ class IPAServer: return users + def convert_scalar_values(self, orig_dict): + """LDAP update dicts expect all values to be a list (except for dn). + This method converts single entries to a list.""" + new_dict={} + for (k,v) in orig_dict.iteritems(): + if not isinstance(v, list) and k != 'dn': + v = [v] + new_dict[k] = v + + return new_dict + def update_user (self, args, newuser=None, opts=None): """Update a user in LDAP""" global _LDAPPool @@ -384,6 +395,9 @@ class IPAServer: if (isinstance(newuser, tuple)): newuser = newuser[0] + olduser = self.convert_scalar_values(olduser) + newuser = self.convert_scalar_values(newuser) + # Should be able to get this from either the old or new user # but just in case someone has decided to try changing it, use the # original |