View | Details | Raw Unified | Return to bug 44422 | Differences between
and this patch

Collapse All | Expand All

(-)management/univention-directory-manager-modules/modules/univention/admin/handlers/users/user.py (-2 / +3 lines)
 Lines 2769-2778    Link Here 
2769
	return lookup_filter_obj
2769
	return lookup_filter_obj
2770
2770
2771
2771
2772
def lookup(co, lo, filter_s, base='', superordinate=None, scope='sub', unique=False, required=False, timeout=-1, sizelimit=0):
2772
def lookup(co, lo, filter_s, base='', superordinate=None, scope='sub', unique=False, required=False, timeout=-1, sizelimit=0, attributes=[]):
2773
	filter = lookup_filter(filter_s)
2773
	filter = lookup_filter(filter_s)
2774
	res = []
2774
	res = []
2775
	for dn, attrs in lo.search(unicode(filter), base, scope, [], unique, required, timeout, sizelimit):
2775
	attributes = [ mapping.mapName(attribute) for attribute in attributes ]
2776
	for dn, attrs in lo.search(unicode(filter), base, scope, attributes, unique, required, timeout, sizelimit):
2776
		res.append(object(co, lo, None, dn, attributes=attrs))
2777
		res.append(object(co, lo, None, dn, attributes=attrs))
2777
	return res
2778
	return res
2778
2779
(-)management/univention-management-console-module-udm/umc/python/udm/__init__.py (-6 / +1 lines)
 Lines 542-548    Link Here 
542
			scope = request.options.get('scope', 'sub')
542
			scope = request.options.get('scope', 'sub')
543
			hidden = request.options.get('hidden')
543
			hidden = request.options.get('hidden')
544
			fields = (set(request.options.get('fields', []) or []) | set([objectProperty])) - set(['name', 'None'])
544
			fields = (set(request.options.get('fields', []) or []) | set([objectProperty])) - set(['name', 'None'])
545
			result = module.search(container, objectProperty, objectPropertyValue, superordinate, scope=scope, hidden=hidden)
545
			result = module.search(container, objectProperty, objectPropertyValue, superordinate, scope=scope, hidden=hidden, attributes=list(fields))
546
			if result is None:
546
			if result is None:
547
				return []
547
				return []
548
548
 Lines 552-562    Link Here 
552
			for obj in result:
552
			for obj in result:
553
				if obj is None:
553
				if obj is None:
554
					continue
554
					continue
555
				module = get_module(object_type, obj.dn)
556
				if module is None:
557
					# This happens when concurrent a object is removed between the module.search() and get_module() call
558
					MODULE.warn('LDAP object does not exists %s (flavor: %s). The object is ignored.' % (obj.dn, request.flavor))
559
					continue
560
				entry = {
555
				entry = {
561
					'$dn$': obj.dn,
556
					'$dn$': obj.dn,
562
					'$childs$': module.childs,
557
					'$childs$': module.childs,
(-)management/univention-management-console-module-udm/umc/python/udm/udm_ldap.py (-2 / +5 lines)
 Lines 460-466    Link Here 
460
			UDM_Error(e).reraise()
460
			UDM_Error(e).reraise()
461
461
462
	@LDAP_Connection
462
	@LDAP_Connection
463
	def search(self, container=None, attribute=None, value=None, superordinate=None, scope='sub', filter='', simple=False, simple_attrs=None, ldap_connection=None, ldap_position=None, hidden=True):
463
	def search(self, container=None, attribute=None, value=None, superordinate=None, scope='sub', filter='', simple=False, simple_attrs=None, ldap_connection=None, ldap_position=None, hidden=True, attributes=[]):
464
		"""Searches for LDAP objects based on a search pattern"""
464
		"""Searches for LDAP objects based on a search pattern"""
465
		if container == 'all':
465
		if container == 'all':
466
			container = ldap_position.getBase()
466
			container = ldap_position.getBase()
 Lines 485-491    Link Here 
485
						result = ldap_connection.searchDn(filter=unicode(lookup_filter), base=container, scope=scope, sizelimit=sizelimit)
485
						result = ldap_connection.searchDn(filter=unicode(lookup_filter), base=container, scope=scope, sizelimit=sizelimit)
486
			else:
486
			else:
487
				if self.module:
487
				if self.module:
488
					result = self.module.lookup(None, ldap_connection, filter_s, base=container, superordinate=superordinate, scope=scope, sizelimit=sizelimit)
488
					try:
489
						result = self.module.lookup(None, ldap_connection, filter_s, base=container, superordinate=superordinate, scope=scope, sizelimit=sizelimit, attributes=attributes)
490
					except TypeError:
491
						result = self.module.lookup(None, ldap_connection, filter_s, base=container, superordinate=superordinate, scope=scope, sizelimit=sizelimit)
489
				else:
492
				else:
490
					result = None
493
					result = None
491
		except udm_errors.insufficientInformation:
494
		except udm_errors.insufficientInformation:

Return to bug 44422