diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/dns/txt_record.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/dns/txt_record.py index 3484eea..cf5dc04 100644 --- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/dns/txt_record.py +++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/dns/txt_record.py @@ -143,7 +143,11 @@ def lookup(co, lo, filter_s, base='', superordinate=None,scope="sub", unique=0, univention.admin.filter.expression('objectClass', 'dNSZone'), univention.admin.filter.conjunction('!', [univention.admin.filter.expression('relativeDomainName', '@')]), univention.admin.filter.conjunction('!', [univention.admin.filter.expression('zoneName', '*.in-addr.arpa')]), - univention.admin.filter.expression('tXTRecord', '*') + univention.admin.filter.expression('tXTRecord', '*'), + univention.admin.filter.conjunction('|', [ + univention.admin.filter.expression('univentionObjectType', ''), + univention.admin.filter.expression('univentionObjectType', 'dns/txt_record'), + ]), ]) if superordinate: @@ -161,5 +165,8 @@ def lookup(co, lo, filter_s, base='', superordinate=None,scope="sub", unique=0, def identify(dn, attr, canonical=0): univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'ALIAS(host_record) identify DN=%s'% dn) - return 'dNSZone' in attr.get('objectClass', []) and '@' not in attr.get('relativeDomainName', []) and \ - not attr['zoneName'][0].endswith('.in-addr.arpa') and attr.get( 'tXTRecord', [] ) + if 'dNSZone' in attr.get('objectClass', []) and \ + (not attr.get('univentionObjectType') or 'dns/txt_record' in attr.get('univentionObjectType')) and \ + '@' not in attr.get('relativeDomainName', []) and \ + not attr['zoneName'][0].endswith('.in-addr.arpa'): + return attr.get( 'tXTRecord', [] )