summaryrefslogtreecommitdiffstats
path: root/ipa-server/xmlrpc-server
diff options
context:
space:
mode:
authorKevin McCarthy <kmccarth@redhat.com>2007-08-20 10:50:11 -0700
committerKevin McCarthy <kmccarth@redhat.com>2007-08-20 10:50:11 -0700
commit66d3f1e730ed5e1bc80264b2a5d7f4fb16c1d22c (patch)
tree2d929adc00cad0701e87d96afc282733e7e6f0ef /ipa-server/xmlrpc-server
parent5f0f192ae3c8aa44868b7b3b86e71523fc55515b (diff)
downloadfreeipa-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.py14
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