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

Collapse All | Expand All

(-)a/management/univention-directory-manager-modules/modules/univention/admin/uldap.py (-8 / +12 lines)
 Lines 85-91   def _err2str(err): Link Here 
85
	msgs = []
85
	msgs = []
86
	for iarg in err.args:
86
	for iarg in err.args:
87
		if isinstance(iarg, dict):
87
		if isinstance(iarg, dict):
88
			msg = ': '.join([str(m) for m in (iarg.get('desc'), iarg.get('info')) if m])
88
			matched = 'matched %s' % (iarg['matched'],) if 'matched' in iarg else ''
89
			msg = ': '.join([str(m) for m in (iarg.get('desc'), iarg.get('info'), matched) if m])
89
		else:
90
		else:
90
			msg = str(iarg)
91
			msg = str(iarg)
91
		if msg:
92
		if msg:
 Lines 358-364   def search(self, filter='(objectClass=*)', base='', scope='sub', attr=[], unique Link Here 
358
		try:
359
		try:
359
			return self.lo.search(filter, base, scope, attr, unique, required, timeout, sizelimit)
360
			return self.lo.search(filter, base, scope, attr, unique, required, timeout, sizelimit)
360
		except ldap.NO_SUCH_OBJECT as msg:
361
		except ldap.NO_SUCH_OBJECT as msg:
361
			raise univention.admin.uexceptions.noObject(_err2str(msg))
362
			raise univention.admin.uexceptions.noObject(base, _err2str(msg))
362
		except ldap.INAPPROPRIATE_MATCHING as msg:
363
		except ldap.INAPPROPRIATE_MATCHING as msg:
363
			raise univention.admin.uexceptions.insufficientInformation(_err2str(msg))
364
			raise univention.admin.uexceptions.insufficientInformation(_err2str(msg))
364
		except (ldap.TIMEOUT, ldap.TIMELIMIT_EXCEEDED) as msg:
365
		except (ldap.TIMEOUT, ldap.TIMELIMIT_EXCEEDED) as msg:
 Lines 374-380   def searchDn(self, filter='(objectClass=*)', base='', scope='sub', unique=False, Link Here 
374
		try:
375
		try:
375
			return self.lo.searchDn(filter, base, scope, unique, required, timeout, sizelimit)
376
			return self.lo.searchDn(filter, base, scope, unique, required, timeout, sizelimit)
376
		except ldap.NO_SUCH_OBJECT as msg:
377
		except ldap.NO_SUCH_OBJECT as msg:
377
			raise univention.admin.uexceptions.noObject(_err2str(msg))
378
			raise univention.admin.uexceptions.noObject(base, _err2str(msg))
378
		except ldap.INAPPROPRIATE_MATCHING as msg:
379
		except ldap.INAPPROPRIATE_MATCHING as msg:
379
			raise univention.admin.uexceptions.insufficientInformation(_err2str(msg))
380
			raise univention.admin.uexceptions.insufficientInformation(_err2str(msg))
380
		except (ldap.TIMEOUT, ldap.TIMELIMIT_EXCEEDED) as msg:
381
		except (ldap.TIMEOUT, ldap.TIMELIMIT_EXCEEDED) as msg:
 Lines 407-412   def add(self, dn, al, exceptions=False): Link Here 
407
		except ldap.INSUFFICIENT_ACCESS as msg:
408
		except ldap.INSUFFICIENT_ACCESS as msg:
408
			univention.debug.debug(univention.debug.LDAP, univention.debug.ALL, 'add dn=%s err=%s' % (dn, msg))
409
			univention.debug.debug(univention.debug.LDAP, univention.debug.ALL, 'add dn=%s err=%s' % (dn, msg))
409
			raise univention.admin.uexceptions.permissionDenied
410
			raise univention.admin.uexceptions.permissionDenied
411
		except ldap.NO_SUCH_OBJECT as msg:
412
			univention.debug.debug(univention.debug.LDAP, univention.debug.ALL, 'add dn=%s err=%s' % (dn, msg))
413
			raise univention.admin.uexceptions.noObject(dn, _err2str(msg))
410
		except ldap.LDAPError as msg:
414
		except ldap.LDAPError as msg:
411
			univention.debug.debug(univention.debug.LDAP, univention.debug.ALL, 'add dn=%s err=%s' % (dn, msg))
415
			univention.debug.debug(univention.debug.LDAP, univention.debug.ALL, 'add dn=%s err=%s' % (dn, msg))
412
			raise univention.admin.uexceptions.ldapError(_err2str(msg), original_exception=msg)
416
			raise univention.admin.uexceptions.ldapError(_err2str(msg), original_exception=msg)
 Lines 424-430   def modify(self, dn, changes, exceptions=False, ignore_license=0): Link Here 
424
			return self.lo.modify(dn, changes)
428
			return self.lo.modify(dn, changes)
425
		except ldap.NO_SUCH_OBJECT as msg:
429
		except ldap.NO_SUCH_OBJECT as msg:
426
			univention.debug.debug(univention.debug.LDAP, univention.debug.ALL, 'mod dn=%s err=%s' % (dn, msg))
430
			univention.debug.debug(univention.debug.LDAP, univention.debug.ALL, 'mod dn=%s err=%s' % (dn, msg))
427
			raise univention.admin.uexceptions.noObject(dn)
431
			raise univention.admin.uexceptions.noObject(dn, _err2str(msg))
428
		except ldap.INSUFFICIENT_ACCESS as msg:
432
		except ldap.INSUFFICIENT_ACCESS as msg:
429
			univention.debug.debug(univention.debug.LDAP, univention.debug.ALL, 'mod dn=%s err=%s' % (dn, msg))
433
			univention.debug.debug(univention.debug.LDAP, univention.debug.ALL, 'mod dn=%s err=%s' % (dn, msg))
430
			raise univention.admin.uexceptions.permissionDenied
434
			raise univention.admin.uexceptions.permissionDenied
 Lines 433-440   def modify(self, dn, changes, exceptions=False, ignore_license=0): Link Here 
433
			raise univention.admin.uexceptions.ldapError(_err2str(msg), original_exception=msg)
437
			raise univention.admin.uexceptions.ldapError(_err2str(msg), original_exception=msg)
434
438
435
	def rename(self, dn, newdn, move_childs=0, ignore_license=False):
439
	def rename(self, dn, newdn, move_childs=0, ignore_license=False):
436
		if not move_childs == 0:
440
		if move_childs:
437
			raise univention.admin.uexceptions.noObject(_("Moving children is not supported."))
441
			raise univention.admin.uexceptions.noObject(dn, _("Moving children is not supported."))
438
		self._validateLicense()
442
		self._validateLicense()
439
		if not self.allow_modify and not ignore_license:
443
		if not self.allow_modify and not ignore_license:
440
			univention.debug.debug(univention.debug.ADMIN, univention.debug.WARN, 'move dn: %s' % dn)
444
			univention.debug.debug(univention.debug.ADMIN, univention.debug.WARN, 'move dn: %s' % dn)
 Lines 445-451   def rename(self, dn, newdn, move_childs=0, ignore_license=False): Link Here 
445
			return self.lo.rename(dn, newdn)
449
			return self.lo.rename(dn, newdn)
446
		except ldap.NO_SUCH_OBJECT as msg:
450
		except ldap.NO_SUCH_OBJECT as msg:
447
			univention.debug.debug(univention.debug.LDAP, univention.debug.ALL, 'ren dn=%s err=%s' % (dn, msg))
451
			univention.debug.debug(univention.debug.LDAP, univention.debug.ALL, 'ren dn=%s err=%s' % (dn, msg))
448
			raise univention.admin.uexceptions.noObject(dn)
452
			raise univention.admin.uexceptions.noObject(dn, _err2str(msg))
449
		except ldap.INSUFFICIENT_ACCESS as msg:
453
		except ldap.INSUFFICIENT_ACCESS as msg:
450
			univention.debug.debug(univention.debug.LDAP, univention.debug.ALL, 'ren dn=%s err=%s' % (dn, msg))
454
			univention.debug.debug(univention.debug.LDAP, univention.debug.ALL, 'ren dn=%s err=%s' % (dn, msg))
451
			raise univention.admin.uexceptions.permissionDenied
455
			raise univention.admin.uexceptions.permissionDenied
 Lines 465-471   def delete(self, dn, exceptions=False): Link Here 
465
			return self.lo.delete(dn)
469
			return self.lo.delete(dn)
466
		except ldap.NO_SUCH_OBJECT as msg:
470
		except ldap.NO_SUCH_OBJECT as msg:
467
			univention.debug.debug(univention.debug.LDAP, univention.debug.ALL, 'del dn=%s err=%s' % (dn, msg))
471
			univention.debug.debug(univention.debug.LDAP, univention.debug.ALL, 'del dn=%s err=%s' % (dn, msg))
468
			raise univention.admin.uexceptions.noObject(dn)
472
			raise univention.admin.uexceptions.noObject(dn, _err2str(msg))
469
		except ldap.INSUFFICIENT_ACCESS as msg:
473
		except ldap.INSUFFICIENT_ACCESS as msg:
470
			univention.debug.debug(univention.debug.LDAP, univention.debug.ALL, 'del dn=%s err=%s' % (dn, msg))
474
			univention.debug.debug(univention.debug.LDAP, univention.debug.ALL, 'del dn=%s err=%s' % (dn, msg))
471
			raise univention.admin.uexceptions.permissionDenied
475
			raise univention.admin.uexceptions.permissionDenied

Return to bug 37584