From 66d3f1e730ed5e1bc80264b2a5d7f4fb16c1d22c Mon Sep 17 00:00:00 2001 From: Kevin McCarthy Date: Mon, 20 Aug 2007 10:50:11 -0700 Subject: 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. --- ipa-server/xmlrpc-server/funcs.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'ipa-server/xmlrpc-server/funcs.py') diff --git a/ipa-server/xmlrpc-server/funcs.py b/ipa-server/xmlrpc-server/funcs.py index a182d4b2..6f7e4e66 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 -- cgit