Include any LDAP error strings in XML-RPC Fault exceptions

Put a try/except around attempts to determine user uniqueness
This commit is contained in:
rcritten@redhat.com
2007-08-27 13:45:28 -04:00
parent c7c8aa0926
commit a5b7e3f56b
2 changed files with 10 additions and 5 deletions

View File

@@ -192,11 +192,10 @@ class IPAServer:
uid = self.__safe_filter(uid)
filter = "(&(uid=%s)(objectclass=posixAccount))" % uid
entry = self.__get_entry(self.basedn, filter, ['dn','uid'], opts)
if entry is not None:
try:
entry = self.__get_entry(self.basedn, filter, ['dn','uid'], opts)
return 0
else:
except ipaerror.exception_for(ipaerror.LDAP_NOT_FOUND):
return 1
def get_user_by_uid (self, uid, sattrs=None, opts=None):

View File

@@ -36,6 +36,7 @@ from mod_python import apache
import ipaserver
import funcs
from ipa import ipaerror
import ldap
import string
import base64
@@ -150,7 +151,12 @@ class ModXMLRPCRequestHandler(object):
response = dumps(response, methodresponse=1, allow_none=1)
except ipaerror.IPAError, e:
self.traceback = True
response = dumps(Fault(e.code, str(e)))
if (isinstance(e.detail, ldap.LDAPError)):
u err = ": %s: %s" % (e.detail.args[0]['desc'], e.detail.args[0].get('info',''))
response = dumps(Fault(e.code, str(e) + err))
else:
response = dumps(Fault(e.code, str(e)))
except:
self.traceback = True
# report exception back to server