From ea89bf1b3ad48d80220089d3937cd7be0da202d2 Mon Sep 17 00:00:00 2001 Message-Id: From: Philipp Hahn Date: Thu, 18 Jun 2015 12:37:17 +0200 Subject: [PATCH] Bug #31857 UDM: provide list of objectClasses and attributeTypes Organization: Univention GmbH, Bremen, Germany Query list of objectClasses and attributes from cn=Subschema in LDAP. --- .../debian/changelog | 6 ++ .../handlers/legacy/policies/clientdevices.py | 4 +- .../legacy/policies/managedclientpackages.py | 4 +- .../legacy/policies/mobileclientpackages.py | 4 +- .../admin/handlers/legacy/policies/sound.py | 4 +- .../admin/handlers/legacy/policies/thinclient.py | 4 +- .../admin/handlers/legacy/policies/xfree.py | 4 +- .../admin/handlers/policies/admin_container.py | 8 +-- .../admin/handlers/policies/autostart.py | 6 +- .../univention/admin/handlers/policies/desktop.py | 6 +- .../admin/handlers/policies/dhcp_boot.py | 8 +-- .../univention/admin/handlers/policies/dhcp_dns.py | 8 +-- .../admin/handlers/policies/dhcp_dnsupdate.py | 4 +- .../admin/handlers/policies/dhcp_leasetime.py | 4 +- .../admin/handlers/policies/dhcp_netbios.py | 4 +- .../admin/handlers/policies/dhcp_routing.py | 8 +-- .../admin/handlers/policies/dhcp_scope.py | 4 +- .../admin/handlers/policies/dhcp_statements.py | 4 +- .../admin/handlers/policies/ldapserver.py | 6 +- .../admin/handlers/policies/mailquota.py | 6 +- .../admin/handlers/policies/maintenance.py | 4 +- .../admin/handlers/policies/masterpackages.py | 4 +- .../admin/handlers/policies/memberpackages.py | 4 +- .../admin/handlers/policies/nfsmounts.py | 4 +- .../admin/handlers/policies/print_quota.py | 4 +- .../admin/handlers/policies/printserver.py | 4 +- .../admin/handlers/policies/pwhistory.py | 4 +- .../univention/admin/handlers/policies/registry.py | 4 +- .../univention/admin/handlers/policies/release.py | 4 +- .../admin/handlers/policies/repositoryserver.py | 4 +- .../admin/handlers/policies/repositorysync.py | 4 +- .../admin/handlers/policies/share_userquota.py | 4 +- .../admin/handlers/policies/slavepackages.py | 4 +- .../admin/handlers/settings/extended_attribute.py | 4 +- .../modules/univention/admin/syntax.py | 71 +++++++++++++++------- .../debian/changelog | 6 ++ .../umc/python/udm/syntax.py | 4 ++ 37 files changed, 143 insertions(+), 100 deletions(-) diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/debian/changelog b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/debian/changelog index 0f78c11..f5dffa1 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/debian/changelog +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/debian/changelog @@ -1,3 +1,9 @@ +univention-directory-manager-modules (10.0.29-53) unstable; urgency=low + + * Bug #31857: provide list of objectClasses and attributeTypes + + -- Philipp Hahn Thu, 18 Jun 2015 12:25:49 +0200 + univention-directory-manager-modules (10.0.29-52) unstable; urgency=medium * Bug #32146: filter duplicated variables, strip out leading/trailing diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/clientdevices.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/clientdevices.py index 73f5e63..edeada8 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/clientdevices.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/clientdevices.py @@ -85,7 +85,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -95,7 +95,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/managedclientpackages.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/managedclientpackages.py index 9342ea1..4ca1fed 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/managedclientpackages.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/managedclientpackages.py @@ -96,7 +96,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -106,7 +106,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/mobileclientpackages.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/mobileclientpackages.py index 910d24d..ff18bce 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/mobileclientpackages.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/mobileclientpackages.py @@ -96,7 +96,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -106,7 +106,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/sound.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/sound.py index f49613b..cbd68a3 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/sound.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/sound.py @@ -97,7 +97,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -107,7 +107,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/thinclient.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/thinclient.py index 7587c1f..773a698 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/thinclient.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/thinclient.py @@ -130,7 +130,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -140,7 +140,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/xfree.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/xfree.py index 40ab691..98feeba 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/xfree.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/xfree.py @@ -239,7 +239,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -249,7 +249,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/admin_container.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/admin_container.py index 681fc9f..fc3ad11 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/admin_container.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/admin_container.py @@ -52,7 +52,7 @@ module='policies/admin_container' operations=['add','edit','remove','search'] policy_oc='univentionPolicyAdminContainerSettings' -policy_apply_to=[] +policy_apply_to=[] policy_position_dn_prefix="cn=container,cn=admin" usewizard=1 @@ -87,7 +87,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -97,7 +97,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -176,7 +176,7 @@ class object(univention.admin.handlers.simplePolicy): def _ldap_addlist(self): return [ ('objectClass', ['top', 'univentionPolicy', 'univentionPolicyAdminContainerSettings']) ] - + def lookup(co, lo, filter_s, base='', superordinate=None, scope='sub', unique=0, required=0, timeout=-1, sizelimit=0): filter=univention.admin.filter.conjunction('&', [ diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/autostart.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/autostart.py index 3955ceb..8db3a5c 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/autostart.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/autostart.py @@ -85,7 +85,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -95,7 +95,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -174,7 +174,7 @@ class object(univention.admin.handlers.simplePolicy): def _ldap_addlist(self): return [ ('objectClass', ['top', 'univentionPolicy', 'univentionPolicyAutoStart']) ] - + def lookup(co, lo, filter_s, base='', superordinate=None, scope='sub', unique=0, required=0, timeout=-1, sizelimit=0): filter=univention.admin.filter.conjunction('&', [ diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/desktop.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/desktop.py index 28307b4..5d6614e 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/desktop.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/desktop.py @@ -116,7 +116,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -126,7 +126,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -210,7 +210,7 @@ class object(univention.admin.handlers.simplePolicy): def _ldap_addlist(self): return [ ('objectClass', ['top', 'univentionPolicy', 'univentionPolicyDesktop']) ] - + def lookup(co, lo, filter_s, base='', superordinate=None, scope='sub', unique=0, required=0, timeout=-1, sizelimit=0): filter=univention.admin.filter.conjunction('&', [ diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_boot.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_boot.py index 0c0ce21..384b1e9 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_boot.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_boot.py @@ -96,7 +96,7 @@ server from which the initial boot file is retrieved.'), 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -106,7 +106,7 @@ server from which the initial boot file is retrieved.'), 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -189,7 +189,7 @@ class object(univention.admin.handlers.simplePolicy): return [ ('objectClass', ['top', 'univentionPolicy', 'univentionPolicyDhcpBoot']) ] - + def lookup(co, lo, filter_s, base='', superordinate=None, scope='sub', unique=0, required=0, timeout=-1, sizelimit=0): filter=univention.admin.filter.conjunction('&', [ @@ -210,5 +210,5 @@ def lookup(co, lo, filter_s, base='', superordinate=None, scope='sub', unique=0, return res def identify(dn, attr, canonical=0): - + return 'univentionPolicyDhcpBoot' in attr.get('objectClass', []) diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_dns.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_dns.py index 237d156..ac604ac 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_dns.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_dns.py @@ -96,7 +96,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -106,7 +106,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -189,7 +189,7 @@ class object(univention.admin.handlers.simplePolicy): return [ ('objectClass', ['top', 'univentionPolicy', 'univentionPolicyDhcpDns']) ] - + def lookup(co, lo, filter_s, base='', superordinate=None, scope='sub', unique=0, required=0, timeout=-1, sizelimit=0): filter=univention.admin.filter.conjunction('&', [ @@ -210,5 +210,5 @@ def lookup(co, lo, filter_s, base='', superordinate=None, scope='sub', unique=0, return res def identify(dn, attr, canonical=0): - + return 'univentionPolicyDhcpDns' in attr.get('objectClass', []) diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_dnsupdate.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_dnsupdate.py index 27ad2f8..9a6d018 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_dnsupdate.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_dnsupdate.py @@ -162,7 +162,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -172,7 +172,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_leasetime.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_leasetime.py index af14ebc..783796c 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_leasetime.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_leasetime.py @@ -106,7 +106,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -116,7 +116,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_netbios.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_netbios.py index f16d7be..fd9ea50 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_netbios.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_netbios.py @@ -106,7 +106,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -116,7 +116,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_routing.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_routing.py index 42baeaf..caab8d5 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_routing.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_routing.py @@ -84,7 +84,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -94,7 +94,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -176,7 +176,7 @@ class object(univention.admin.handlers.simplePolicy): return [ ('objectClass', ['top', 'univentionPolicy', 'univentionPolicyDhcpRouting']) ] - + def lookup(co, lo, filter_s, base='', superordinate=None, scope='sub', unique=0, required=0, timeout=-1, sizelimit=0): filter=univention.admin.filter.conjunction('&', [ @@ -197,5 +197,5 @@ def lookup(co, lo, filter_s, base='', superordinate=None, scope='sub', unique=0, return res def identify(dn, attr, canonical=0): - + return 'univentionPolicyDhcpRouting' in attr.get('objectClass', []) diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_scope.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_scope.py index 061ea2a..438e26b 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_scope.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_scope.py @@ -128,7 +128,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -138,7 +138,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_statements.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_statements.py index 01c83f4..9736ce5 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_statements.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_statements.py @@ -139,7 +139,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -149,7 +149,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/ldapserver.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/ldapserver.py index 43bba29..27b8571 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/ldapserver.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/ldapserver.py @@ -85,7 +85,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -95,7 +95,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -174,7 +174,7 @@ class object(univention.admin.handlers.simplePolicy): def _ldap_addlist(self): return [ ('objectClass', ['top', 'univentionPolicy', 'univentionPolicyLDAPServer']) ] - + def lookup(co, lo, filter_s, base='', superordinate=None, scope='sub', unique=0, required=0, timeout=-1, sizelimit=0): filter=univention.admin.filter.conjunction('&', [ diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/mailquota.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/mailquota.py index 3240a0c..e6be537 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/mailquota.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/mailquota.py @@ -85,7 +85,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -95,7 +95,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -174,7 +174,7 @@ class object(univention.admin.handlers.simplePolicy): def _ldap_addlist(self): return [ ('objectClass', ['top', 'univentionPolicy', 'univentionMailQuota']) ] - + def lookup(co, lo, filter_s, base='', superordinate=None, scope='sub', unique=0, required=0, timeout=-1, sizelimit=0): filter=univention.admin.filter.conjunction('&', [ diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/maintenance.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/maintenance.py index 386bd44..e4bd2f8 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/maintenance.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/maintenance.py @@ -166,7 +166,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -176,7 +176,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/masterpackages.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/masterpackages.py index 888aaec..3ddbd23 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/masterpackages.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/masterpackages.py @@ -96,7 +96,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -106,7 +106,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/memberpackages.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/memberpackages.py index 1019eb2..bb717f3 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/memberpackages.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/memberpackages.py @@ -96,7 +96,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -106,7 +106,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/nfsmounts.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/nfsmounts.py index 8fc7eff..8fcce79 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/nfsmounts.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/nfsmounts.py @@ -85,7 +85,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -95,7 +95,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/print_quota.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/print_quota.py index 3717056..c1f8366 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/print_quota.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/print_quota.py @@ -109,7 +109,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -119,7 +119,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/printserver.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/printserver.py index 4bee9f6..0c2aded 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/printserver.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/printserver.py @@ -85,7 +85,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -95,7 +95,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/pwhistory.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/pwhistory.py index 18670ae..b3977bc 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/pwhistory.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/pwhistory.py @@ -117,7 +117,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -127,7 +127,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/registry.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/registry.py index 644bcd2..97c57dc 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/registry.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/registry.py @@ -84,7 +84,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -94,7 +94,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/release.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/release.py index ea12d93..8452846 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/release.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/release.py @@ -95,7 +95,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -105,7 +105,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/repositoryserver.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/repositoryserver.py index 774876f..2dc52d2 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/repositoryserver.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/repositoryserver.py @@ -86,7 +86,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -96,7 +96,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/repositorysync.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/repositorysync.py index e554959..59e2fd2 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/repositorysync.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/repositorysync.py @@ -126,7 +126,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -136,7 +136,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/share_userquota.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/share_userquota.py index 85d7141..e0c4734 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/share_userquota.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/share_userquota.py @@ -130,7 +130,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -140,7 +140,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/slavepackages.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/slavepackages.py index 570bfdc..169e3d0 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/slavepackages.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/slavepackages.py @@ -96,7 +96,7 @@ property_descriptions={ 'requiredObjectClasses': univention.admin.property( short_description=_('Required object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, @@ -106,7 +106,7 @@ property_descriptions={ 'prohibitedObjectClasses': univention.admin.property( short_description=_('Excluded object class'), long_description='', - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=1, options=[], required=0, diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/extended_attribute.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/extended_attribute.py index 0d3ece6..36a26f5 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/extended_attribute.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/extended_attribute.py @@ -257,7 +257,7 @@ property_descriptions={ 'ldapMapping': univention.admin.property( short_description=_('LDAP attribute'), long_description=_('Univention Corporate Server provides its own LDAP scheme for customer extensions. The LDAP object class univentionFreeAttributes can be used for extended attributes without restrictions. It offers 20 freely usable attributes (univentionFreeAttribute1 to univentionFreeAttribute20) and can be used in connection with any LDAP object (e.g., a user object)'), - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapAttribute, multivalue=0, options=[], required=1, @@ -298,7 +298,7 @@ property_descriptions={ 'objectClass': univention.admin.property( short_description=_('LDAP object class'), long_description=_('Univention Corporate Server provides its own LDAP scheme for customer extensions. The LDAP object class univentionFreeAttributes can be used for extended attributes without restrictions. It offers 20 freely usable attributes (univentionFreeAttribute1 to univentionFreeAttribute20) and can be used in connection with any LDAP object (e.g., a user object)'), - syntax=univention.admin.syntax.string, + syntax=univention.admin.syntax.ldapObjectClass, multivalue=0, options=[], required=1, diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/syntax.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/syntax.py index d1ad5f3..8d641cd 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/syntax.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-directory-manager-modules/modules/univention/admin/syntax.py @@ -1467,15 +1467,45 @@ class ldapDnOrNone(simple): return text raise univention.admin.uexceptions.valueError,_("Not a valid LDAP DN") -class ldapObjectClass(simple): - @classmethod - def parse(self, text): - return text -class ldapAttribute(simple): - @classmethod - def parse(self, text): - return text +class ldapObjectClass(select): + choices = (('top', 'top')) + + +class ldapAttribute(select): + choices = () + + +def _update_schema(): + from univention.uldap import getMachineConnection + from ldap.schema import (SubSchema, ObjectClass, AttributeType) + conn = getMachineConnection() + try: + results = conn.lo.search_ext_s( + base='cn=Subschema', + scope=ldap.SCOPE_BASE, + attrlist=['attributeTypes', 'objectClasses']) + result, = results + dn, entry = result + subschema = SubSchema(entry) + + sorter = lambda s: s.lower() + ocs = set() + for oid in subschema.listall(ObjectClass): + oc = subschema.get_obj(ObjectClass, oid) + ocs |= set(oc.names) + ldapObjectClass.choices = [(oc, oc) for oc in sorted(ocs, key=sorter)] + attrs = set() + for oid in subschema.listall(AttributeType): + attr = subschema.get_obj(AttributeType, oid) + attrs |= set(attr.names) + ldapAttribute.choices = [(attr, attr) for attr in sorted(attrs, key=sorter)] + except ldap.SERVER_DOWN: + pass + finally: + conn.lo.unbind() +__register_choice_update_function(_update_schema) + class ldapFilter(simple): @@ -2522,7 +2552,7 @@ class MinuteSimple(select): class UNIX_AccessRight( simple ): pass -# Widget supports setgid/sticky bit +# Widget supports setgid/sticky bit class UNIX_AccessRight_extended( simple ): pass @@ -2612,18 +2642,15 @@ class univentionAdminModules(select): return text raise univention.admin.uexceptions.valueInvalidSyntax, _('"%s" is not a Univention Admin Module.') % text -# Unfortunately, Python doesn't seem to support (static) class methods; -# however, (static) class variables such as "choices" seem to work; -# so, we'll modify "choices" using this global method -def univentionAdminModules_update(): - temp = [] - for name, mod in univention.admin.modules.modules.items(): - if not univention.admin.modules.virtual( mod ): - temp.append( ( name, univention.admin.modules.short_description( mod ) ) ) - - univentionAdminModules.choices = sorted( temp, key = operator.itemgetter( 1 ) ) + @classmethod + def _update_choices(cls): + cls.choices = sorted([ + (name, univention.admin.modules.short_description(mod)) + for name, mod in univention.admin.modules.modules.items() + if not univention.admin.modules.virtual(mod) + ] , key=operator.itemgetter(1)) -__register_choice_update_function(univentionAdminModules_update) +__register_choice_update_function(univentionAdminModules._update_choices) class UDM_PropertySelect( complex ): subsyntaxes = ( ( _( 'UDM module' ), string ), ( _( 'property' ), string ) ) @@ -2707,11 +2734,11 @@ class LDAP_Search( select ): Searches can be either defined dynamically via a UDM settings/syntax definition and using - >>> LDAP_Search( syntax_name = '' ) + > LDAP_Search( syntax_name = '' ) or programmatically by directly instantiating - >>> LDAP_Search( filter = '', attribute = [ '', ... ], value = '', base = '' ) + > LDAP_Search( filter = '', attribute = [ '', ... ], value = '', base = '' ) """ FILTER_PATTERN = '(&(objectClass=univentionSyntax)(cn=%s))' diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-management-console-module-udm/debian/changelog b/branches/ucs-4.0/ucs-4.0-2/management/univention-management-console-module-udm/debian/changelog index 49e3377..a375413 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-management-console-module-udm/debian/changelog +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-management-console-module-udm/debian/changelog @@ -1,3 +1,9 @@ +univention-management-console-module-udm (5.1.25-71) unstable; urgency=low + + * Bug #31857: provide list of objectClasses and attributeTypes + + -- Philipp Hahn Thu, 18 Jun 2015 12:25:49 +0200 + univention-management-console-module-udm (5.1.25-70) unstable; urgency=medium * Bug #38544: handle errors when no object type is given via request.options diff --git a/branches/ucs-4.0/ucs-4.0-2/management/univention-management-console-module-udm/umc/python/udm/syntax.py b/branches/ucs-4.0/ucs-4.0-2/management/univention-management-console-module-udm/umc/python/udm/syntax.py index d27afeb..a260b27 100644 --- a/branches/ucs-4.0/ucs-4.0-2/management/univention-management-console-module-udm/umc/python/udm/syntax.py +++ b/branches/ucs-4.0/ucs-4.0-2/management/univention-management-console-module-udm/umc/python/udm/syntax.py @@ -39,6 +39,10 @@ import univention.admin.syntax as udm_syntax from ...log import MODULE +# update choices-lists which are defined in LDAP +udm_syntax.update_choices() + + class Widget(object): '''Describes a widget for the new web frontend''' -- 1.9.1