mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
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:
@@ -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):
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user