View | Details | Raw Unified | Return to bug 54339
Collapse All | Expand All

(-)management/univention-directory-manager-modules/modules/univention/admin/handlers/dns/ptr_record.py (+16 lines)
 Lines 213-218   class object(univention.admin.handlers.simpleLdap): Link Here 
213
		super(object, self)._ldap_post_remove()
213
		super(object, self)._ldap_post_remove()
214
		self._updateZone()
214
		self._updateZone()
215
215
216
	@classmethod
217
	def rewrite_filter(cls, filter, mapping):
218
		if filter.variable == 'ip':
219
			filter.variable = 'relativeDomainName'
220
			if ':' in filter.value:
221
				addr = ipaddress.IPv6Address(u'%s' % (filter.value,))
222
				raise NotImplementedError('IPv6')
223
			else:
224
				subnets = [ipaddress.IPv4Interface(u'%s/%d' % (filter.value, netmask)) for netmask in (24, 16, 8)]
225
				subnets = [s.network.network_address.compressed.replace('.0', '') for s in subnets]
226
			filter.transform_to_conjunction(univention.admin.filter.conjunction('|', [
227
				rewrite_rev(expression('ip', filter.value), subnet=subnet) for subnet in subnets
228
			]))
229
		else:
230
			super(object, cls).rewrite_filter(filter, mapping)
231
216
	@classmethod
232
	@classmethod
217
	def lookup_filter_superordinate(cls, filter, superordinate):
233
	def lookup_filter_superordinate(cls, filter, superordinate):
218
		filter.expressions.append(univention.admin.filter.expression('zoneName', superordinate.mapping.mapValueDecoded('subnet', superordinate['subnet']), escape=True))
234
		filter.expressions.append(univention.admin.filter.expression('zoneName', superordinate.mapping.mapValueDecoded('subnet', superordinate['subnet']), escape=True))

Return to bug 54339