diff options
author | Kevin McCarthy <kmccarth@redhat.com> | 2007-10-15 09:04:13 -0700 |
---|---|---|
committer | Kevin McCarthy <kmccarth@redhat.com> | 2007-10-15 09:04:13 -0700 |
commit | fbbdd27b5389ccbafa3fea8608b412759093cb69 (patch) | |
tree | 6fb9d1e82fc9b21a322493a79071b5dab00cd822 | |
parent | 63f7cdf7f7e1c39b791dad6951fa39d9a6d58c9d (diff) | |
download | freeipa-fbbdd27b5389ccbafa3fea8608b412759093cb69.tar.gz freeipa-fbbdd27b5389ccbafa3fea8608b412759093cb69.tar.xz freeipa-fbbdd27b5389ccbafa3fea8608b412759093cb69.zip |
Creates an update_entry api call, aliases update_user and update_group to it.
-rw-r--r-- | ipa-python/ipaclient.py | 6 | ||||
-rw-r--r-- | ipa-python/rpcclient.py | 14 | ||||
-rw-r--r-- | ipa-server/ipa-gui/ipagui/subcontrollers/delegation.py | 3 | ||||
-rw-r--r-- | ipa-server/xmlrpc-server/funcs.py | 12 | ||||
-rw-r--r-- | ipa-server/xmlrpc-server/ipaxmlrpc.py | 1 |
5 files changed, 28 insertions, 8 deletions
diff --git a/ipa-python/ipaclient.py b/ipa-python/ipaclient.py index cf2e355a5..9f6f8f3e6 100644 --- a/ipa-python/ipaclient.py +++ b/ipa-python/ipaclient.py @@ -78,6 +78,12 @@ class IPAClient: result = self.transport.get_entry_by_cn(cn,sattrs) return entity.Entity(result) + def update_entry(self,entry): + """Update a entry.""" + + result = self.transport.update_entry(entry.origDataDict(), entry.toDict()) + return result + # User support def get_user_by_uid(self,uid,sattrs=None): """Get a specific user by uid. If sattrs is set then only those diff --git a/ipa-python/rpcclient.py b/ipa-python/rpcclient.py index ae26d7070..eae68ee32 100644 --- a/ipa-python/rpcclient.py +++ b/ipa-python/rpcclient.py @@ -118,6 +118,20 @@ class RPCClient: return ipautil.unwrap_binary_data(result) + def update_entry(self,oldentry,newentry): + """Update an existing entry. oldentry and newentry are dicts of attributes""" + server = self.setup_server() + + try: + result = server.update_entry(ipautil.wrap_binary_data(oldentry), + ipautil.wrap_binary_data(newentry)) + except xmlrpclib.Fault, fault: + raise ipaerror.gen_exception(fault.faultCode, fault.faultString) + except socket.error, (value, msg): + raise xmlrpclib.Fault(value, msg) + + return ipautil.unwrap_binary_data(result) + # User support diff --git a/ipa-server/ipa-gui/ipagui/subcontrollers/delegation.py b/ipa-server/ipa-gui/ipagui/subcontrollers/delegation.py index 8adbc7da6..908412767 100644 --- a/ipa-server/ipa-gui/ipagui/subcontrollers/delegation.py +++ b/ipa-server/ipa-gui/ipagui/subcontrollers/delegation.py @@ -62,8 +62,7 @@ class DelegationController(IPAController): aci_entry = client.get_aci_entry(['dn']) aci_entry.setValue('aci', new_aci.export_to_string()) - # TODO - add a client.update_entry() call instead - client.update_group(aci_entry) + client.update_entry(aci_entry) except ipaerror.IPAError, e: turbogears.flash("Delgate add failed: " + str(e)) return dict(form=delegate_new_form, delegate=kw, diff --git a/ipa-server/xmlrpc-server/funcs.py b/ipa-server/xmlrpc-server/funcs.py index 0dd0c2c5d..8ba0efdde 100644 --- a/ipa-server/xmlrpc-server/funcs.py +++ b/ipa-server/xmlrpc-server/funcs.py @@ -343,6 +343,10 @@ class IPAServer: filter = "(cn=" + cn + ")" return self.__get_sub_entry(self.basedn, filter, sattrs, opts) + def update_entry (self, oldentry, newentry, opts=None): + """Update an entry in LDAP""" + return self.__update_entry(oldentry, newentry, opts) + # User support def __is_user_unique(self, uid, opts): @@ -586,9 +590,7 @@ class IPAServer: return new_dict - def update_user (self, olduser, newuser, opts=None): - """Update a user in LDAP""" - return self.__update_entry(olduser, newuser, opts) + update_user = update_entry def mark_user_deleted (self, uid, opts=None): """Mark a user as inactive in LDAP. We aren't actually deleting @@ -987,9 +989,7 @@ class IPAServer: return failed - def update_group (self, oldgroup, newgroup, opts=None): - """Update a group in LDAP""" - return self.__update_entry(oldgroup, newgroup, opts) + update_group = update_entry def delete_group (self, group_dn, opts=None): """Delete a group diff --git a/ipa-server/xmlrpc-server/ipaxmlrpc.py b/ipa-server/xmlrpc-server/ipaxmlrpc.py index 3872ee21c..e9da95869 100644 --- a/ipa-server/xmlrpc-server/ipaxmlrpc.py +++ b/ipa-server/xmlrpc-server/ipaxmlrpc.py @@ -320,6 +320,7 @@ def handler(req, profiling=False): h.register_function(f.get_aci_entry) h.register_function(f.get_entry_by_dn) h.register_function(f.get_entry_by_cn) + h.register_function(f.update_entry) h.register_function(f.get_user_by_uid) h.register_function(f.get_user_by_principal) h.register_function(f.get_users_by_manager) |