Univention Bugzilla – Attachment 7314 Details for
Bug 40041
no escaping of DN when composing DN for newly created objects
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
patch
40040.patch (text/plain), 113.62 KB, created by
Florian Best
on 2015-11-19 17:33:18 CET
(
hide
)
Description:
patch
Filename:
MIME Type:
Creator:
Florian Best
Created:
2015-11-19 17:33:18 CET
Size:
113.62 KB
patch
obsolete
>diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/domaincontroller_backup.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/domaincontroller_backup.py >index ece5b58..a10eb44 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/domaincontroller_backup.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/domaincontroller_backup.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >@@ -484,7 +486,7 @@ def open(self): > > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > if not self['password']: > self['password']=self.oldattr.get('password',[''])[0] > self.modifypassword=0 >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/domaincontroller_master.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/domaincontroller_master.py >index 8876258..e634f34 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/domaincontroller_master.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/domaincontroller_master.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >@@ -483,7 +485,7 @@ def open(self): > > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > if not self['password']: > self['password']=self.oldattr.get('password',[''])[0] > self.modifypassword=0 >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/domaincontroller_slave.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/domaincontroller_slave.py >index 4e50d4d..12ce41b 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/domaincontroller_slave.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/domaincontroller_slave.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >@@ -485,7 +487,7 @@ def open(self): > > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > if not self['password']: > self['password']=self.oldattr.get('password',[''])[0] > self.modifypassword=0 >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/ipmanagedclient.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/ipmanagedclient.py >index 7718799..af4283e 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/ipmanagedclient.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/ipmanagedclient.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >@@ -267,7 +269,7 @@ def open(self): > self.save() > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > self.nagios_ldap_pre_create() > univention.admin.handlers.simpleComputer._ldap_pre_create( self ) > >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/linux.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/linux.py >index 4204357..c4925d2 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/linux.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/linux.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >@@ -413,7 +415,7 @@ def open(self): > > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > if not self['password']: > self['password']=self.oldattr.get('password',[''])[0] > self.modifypassword=0 >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/macos.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/macos.py >index 3d2647f..b1d481c 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/macos.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/macos.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >@@ -425,7 +427,7 @@ def open(self): > > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > if not self['password']: > self['password']=self.oldattr.get('password',[''])[0] > self.modifypassword=0 >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/memberserver.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/memberserver.py >index dde238a..5aa6da9 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/memberserver.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/memberserver.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >@@ -478,7 +480,7 @@ def open(self): > > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > if not self['password']: > self['password']=self.oldattr.get('password',[''])[0] > self.modifypassword=0 >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/trustaccount.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/trustaccount.py >index ecb4b40..592a371 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/trustaccount.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/trustaccount.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.config >@@ -126,7 +128,7 @@ def open(self): > self.save() > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/ubuntu.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/ubuntu.py >index 0cf0a33..89ebffd 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/ubuntu.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/ubuntu.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >@@ -413,7 +415,7 @@ def open(self): > > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > if not self['password']: > self['password']=self.oldattr.get('password',[''])[0] > self.modifypassword=0 >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/windows.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/windows.py >index 04540f2..c235a0a 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/windows.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/windows.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >@@ -442,7 +444,7 @@ def open(self): > > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > if not self['password']: > self['password']=self.oldattr.get('password',[''])[0] > self.modifypassword=0 >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/windows_domaincontroller.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/windows_domaincontroller.py >index 4538de5..adcc894 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/windows_domaincontroller.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/computers/windows_domaincontroller.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >@@ -451,7 +453,7 @@ def open(self): > > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > if not self['password']: > self['password']=self.oldattr.get('password',[''])[0] > self.modifypassword=0 >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/container/cn.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/container/cn.py >index 811433f..f37f76d 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/container/cn.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/container/cn.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.uldap > import univention.admin.syntax >@@ -245,7 +247,7 @@ def open(self): > self.save() > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_post_create(self): > changes=[] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/container/dc.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/container/dc.py >index a516403..016785f 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/container/dc.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/container/dc.py >@@ -213,7 +213,7 @@ def open(self): > iself._remove_option('kerberos') > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > ocs=['top', 'domain', 'sambaDomain', 'univentionDomain', 'univentionBase'] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/container/ou.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/container/ou.py >index 9447547..95896ac 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/container/ou.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/container/ou.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > from univention.admin import configRegistry > import univention.admin.uldap >@@ -247,7 +249,7 @@ def open(self): > self.save() > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > if configRegistry.is_false('directory/manager/child/cn/ou', True): > if self.position.getDn() != configRegistry.get('ldap/base'): > # it is possible to have a basedn with cn=foo >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/dhcp/host.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/dhcp/host.py >index a0c4b17..3e68725 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/dhcp/host.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/dhcp/host.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >@@ -132,7 +134,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simpleLdap.__init__(self, co, lo, position, dn, superordinate, attributes = attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('host'), mapping.mapValue('host', self.info['host']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('host'), ldap.dn.escape_dn_chars(mapping.mapValue('host', self.info['host'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/dhcp/pool.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/dhcp/pool.py >index e65a511..c04efff 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/dhcp/pool.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/dhcp/pool.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > import copy > import string > >@@ -191,7 +193,7 @@ def open(self): > > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/dhcp/server.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/dhcp/server.py >index fbce8be..2dd4bbd 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/dhcp/server.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/dhcp/server.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >@@ -96,7 +98,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simpleLdap.__init__(self, co, lo, position, dn, superordinate, attributes = attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('server'), mapping.mapValue('server', self.info['server']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('server'), ldap.dn.escape_dn_chars(mapping.mapValue('server', self.info['server'])), self.position.getDn()) > > def _ldap_addlist(self): > searchBase=self.position.getDomain() >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/dhcp/service.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/dhcp/service.py >index 2c2e296..ea4a212 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/dhcp/service.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/dhcp/service.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >@@ -91,7 +93,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simpleLdap.__init__(self, co, lo, position, dn, superordinate, attributes = attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('service'), mapping.mapValue('service', self.info['service']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('service'), ldap.dn.escape_dn_chars(mapping.mapValue('service', self.info['service'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/dhcp/shared.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/dhcp/shared.py >index b0bd9b3..2379e76 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/dhcp/shared.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/dhcp/shared.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >@@ -97,7 +99,7 @@ def open(self): > self.save() > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/dhcp/sharedsubnet.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/dhcp/sharedsubnet.py >index bb2dc23..92a0f1f 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/dhcp/sharedsubnet.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/dhcp/sharedsubnet.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > import string > > from univention.admin.layout import Tab, Group >@@ -141,7 +143,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simpleLdap.__init__(self, co, lo, position, dn, superordinate, attributes = attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('subnet'), mapping.mapValue('subnet', self.info['subnet']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('subnet'), ldap.dn.escape_dn_chars(mapping.mapValue('subnet', self.info['subnet'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/dhcp/subnet.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/dhcp/subnet.py >index bc005c9..876d5d7 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/dhcp/subnet.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/dhcp/subnet.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > import string > > from univention.admin.layout import Tab, Group >@@ -148,7 +150,7 @@ def open(self): > > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('subnet'), mapping.mapValue('subnet', self.info['subnet']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('subnet'), ldap.dn.escape_dn_chars(mapping.mapValue('subnet', self.info['subnet'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/dns/alias.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/dns/alias.py >index fa4c238..5c53872 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/dns/alias.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/dns/alias.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > import re > import string > >@@ -123,7 +125,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [], > univention.admin.handlers.simpleLdap.__init__(self, co, lo, position, dn, superordinate, attributes = attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/dns/forward_zone.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/dns/forward_zone.py >index 32f74cd..9d2dd71 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/dns/forward_zone.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/dns/forward_zone.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > import ipaddr > > from univention.admin.layout import Tab, Group >@@ -273,7 +275,7 @@ def open(self): > self.save() > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('zone'), mapping.mapValue('zone', self.info['zone']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('zone'), ldap.dn.escape_dn_chars(mapping.mapValue('zone', self.info['zone'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/dns/host_record.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/dns/host_record.py >index 5708bc1..a3564ab 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/dns/host_record.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/dns/host_record.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > import ipaddr > import string > >@@ -174,7 +176,7 @@ def open(self): > self.info['a'].extend( map(lambda x: ipaddr.IPv6Address(x).exploded, self.oldattr['aAAARecord'])) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/dns/ptr_record.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/dns/ptr_record.py >index 873e566..5686412 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/dns/ptr_record.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/dns/ptr_record.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin > import univention.admin.handlers >@@ -104,7 +106,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [], > univention.admin.handlers.simpleLdap.__init__(self, co, lo, position, dn, superordinate, attributes = attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('address'), mapping.mapValue('address', self['address']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('address'), ldap.dn.escape_dn_chars(mapping.mapValue('address', self['address'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/dns/reverse_zone.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/dns/reverse_zone.py >index c9e7f8a..975cda3 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/dns/reverse_zone.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/dns/reverse_zone.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > from univention.admin import configRegistry > >@@ -244,7 +246,7 @@ def open(self): > self.save() > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('subnet'), mapping.mapValue('subnet', self.info['subnet']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('subnet'), ldap.dn.escape_dn_chars(mapping.mapValue('subnet', self.info['subnet'])), self.position.getDn()) > > def _ldap_modlist(self): > ml=univention.admin.handlers.simpleLdap._ldap_modlist(self) >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/dns/srv_record.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/dns/srv_record.py >index 4523a90..5951f9a 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/dns/srv_record.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/dns/srv_record.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > import string > > from univention.admin.layout import Tab, Group >@@ -145,7 +147,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [], > univention.admin.handlers.simpleLdap.__init__(self, co, lo, position, dn, superordinate, attributes = attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ >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 91fe645..7a0a786 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 >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > import string > > from univention.admin.layout import Tab, Group >@@ -119,7 +121,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [], > univention.admin.handlers.simpleLdap.__init__(self, co, lo, position, dn, superordinate, attributes = attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/groups/group.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/groups/group.py >index 5681c7d..64d82ec 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/groups/group.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/groups/group.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > import copy > import time > import ldap >@@ -535,7 +537,7 @@ def _check_uid_gid_uniqueness(self): > raise univention.admin.uexceptions.gidNumberAlreadyUsedAsUidNumber, '%r' % self["gidNumber"] > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > self.check_for_group_recursion() > self._check_uid_gid_uniqueness() > >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/kerberos/kdcentry.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/kerberos/kdcentry.py >index 51e7898..fb4f730 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/kerberos/kdcentry.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/kerberos/kdcentry.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >@@ -197,7 +199,7 @@ def _set_principal(self): > > def _ldap_pre_create(self): > self._set_principal() >- self.dn='krb5PrincipalName=%s,%s' % (self.krb5PrincipalName, self.position.getDn()) >+ self.dn = 'krb5PrincipalName=%s,%s' % (ldap.dn.escape_dn_chars(self.krb5PrincipalName), self.position.getDn()) > > def _ldap_modlist( self ): > ml=univention.admin.handlers.simpleLdap._ldap_modlist( self ) >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/computers/managedclient.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/computers/managedclient.py >index 48be4a6..b71ddb0 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/computers/managedclient.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/computers/managedclient.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >@@ -424,7 +426,7 @@ def open(self): > # self.save() > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > if not self['password']: > self['password']=self.oldattr.get('password',[''])[0] > self.modifypassword=0 >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/computers/mobileclient.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/computers/mobileclient.py >index 95ebcd8..d747910 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/computers/mobileclient.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/computers/mobileclient.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >@@ -421,7 +423,7 @@ def open(self): > # self.save() > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > if not self['password']: > self['password']=self.oldattr.get('password',[''])[0] > self.modifypassword=0 >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/computers/thinclient.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/computers/thinclient.py >index 3e7e03c..847839e 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/computers/thinclient.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/computers/thinclient.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >@@ -264,7 +266,7 @@ def open(self): > self.save() > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > univention.admin.handlers.simpleComputer._ldap_pre_create( self ) > > def _ldap_pre_modify(self): >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/clientdevices.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/clientdevices.py >index bef08d7..386fce3 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/clientdevices.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/clientdevices.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -124,7 +126,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simplePolicy.__init__(self, co, lo, position, dn, superordinate, attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ ('objectClass', ['top', 'univentionPolicy', 'univentionPolicyClientDevices']) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/managedclientpackages.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/managedclientpackages.py >index 97f0f84..810bf35 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/managedclientpackages.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/managedclientpackages.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -137,7 +139,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simplePolicy.__init__(self, co, lo, position, dn, superordinate, attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ ('objectClass', ['top', 'univentionPolicy', 'univentionPolicyPackagesClient']) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/mobileclientpackages.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/mobileclientpackages.py >index d0c126d..3ec2660 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/mobileclientpackages.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/mobileclientpackages.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -137,7 +139,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simplePolicy.__init__(self, co, lo, position, dn, superordinate, attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ ('objectClass', ['top', 'univentionPolicy', 'univentionPolicyPackagesMobileClient']) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/sound.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/sound.py >index 03bcfc8..4895e08 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/sound.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/sound.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -138,7 +140,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simplePolicy.__init__(self, co, lo, position, dn, superordinate, attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ ('objectClass', ['top', 'univentionPolicy', 'univentionPolicySoundConfiguration']) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/thinclient.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/thinclient.py >index b198fdf..fb44185 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/thinclient.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/thinclient.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -175,7 +177,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simplePolicy.__init__(self, co, lo, position, dn, superordinate, attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ ('objectClass', ['top', 'univentionPolicy', 'univentionPolicyThinClient']) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/xfree.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/xfree.py >index 7684b62..fd7604d 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/xfree.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/legacy/policies/xfree.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -429,7 +431,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simplePolicy.__init__(self, co, lo, position, dn, superordinate, attributes) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/mail/domain.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/mail/domain.py >index e459c4f..9dd1e5d 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/mail/domain.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/mail/domain.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >@@ -94,7 +96,7 @@ def open(self): > univention.admin.handlers.simpleLdap.open(self) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name'].lower()), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'].lower())), self.position.getDn()) > > def _ldap_addlist(self): > ocs=[] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/mail/folder.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/mail/folder.py >index 6d24bc9..def108d 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/mail/folder.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/mail/folder.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >@@ -204,7 +206,7 @@ def description( self ): > return '%s@%s' % ( self[ 'name' ], self[ 'mailDomain' ] ) > > def _ldap_pre_create(self): >- self.dn='cn=%s@%s,%s' % (self.info['name'], self.info['mailDomain'], self.position.getDn()) >+ self.dn = 'cn=%s@%s,%s' % (ldap.dn.escape_dn_chars(self.info['name']), ldap.dn.escape_dn_chars(self.info['mailDomain']), self.position.getDn()) > > def _ldap_post_create(self): > if self[ 'mailPrimaryAddress' ]: >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/mail/lists.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/mail/lists.py >index b71db73..51f7edb 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/mail/lists.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/mail/lists.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >@@ -165,7 +167,7 @@ def open(self): > self.save() > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_post_create(self): > if self[ 'mailAddress' ]: >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/nagios/service.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/nagios/service.py >index 03384d2..58852fb 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/nagios/service.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/nagios/service.py >@@ -31,6 +31,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > import re > > from univention.admin.layout import Tab, Group >@@ -340,7 +342,7 @@ def open(self): > self.save() > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_post_create(self): > pass >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/nagios/timeperiod.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/nagios/timeperiod.py >index 583a517..d0916e8 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/nagios/timeperiod.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/nagios/timeperiod.py >@@ -31,6 +31,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > import re > > from univention.admin.layout import Tab, Group >@@ -216,7 +218,7 @@ def open(self): > self.save() > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_post_create(self): > pass >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/networks/network.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/networks/network.py >index 0ff7504..2524748 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/networks/network.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/networks/network.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > import ipaddr > import string > import ldap >@@ -250,7 +252,7 @@ def _ldap_post_remove(self): > univention.debug.debug(univention.debug.ADMIN, univention.debug.ERROR, 'Failed to remove network %s from %s: %s' % (self.dn, computer.dn, traceback.format_exc())) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > if not self['nextIp']: >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/admin_container.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/admin_container.py >index a8fc679..9f58428 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/admin_container.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/admin_container.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -126,7 +128,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simplePolicy.__init__(self, co, lo, position, dn, superordinate, attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ ('objectClass', ['top', 'univentionPolicy', 'univentionPolicyAdminContainerSettings']) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/autostart.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/autostart.py >index 77a9c6c..594fada 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/autostart.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/autostart.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -125,7 +127,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simplePolicy.__init__(self, co, lo, position, dn, superordinate, attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ ('objectClass', ['top', 'univentionPolicy', 'univentionPolicyAutoStart']) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/desktop.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/desktop.py >index b048a7d..526ea52 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/desktop.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/desktop.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -164,7 +166,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simplePolicy.__init__(self, co, lo, position, dn, superordinate, attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ ('objectClass', ['top', 'univentionPolicy', 'univentionPolicyDesktop']) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_boot.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_boot.py >index aa8bc48..ddfb645 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_boot.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_boot.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -140,7 +142,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simplePolicy.__init__(self, co, lo, position, dn, superordinate, attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_dns.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_dns.py >index f5a5aaa..ca07770 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_dns.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_dns.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -140,7 +142,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simplePolicy.__init__(self, co, lo, position, dn, superordinate, attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_dnsupdate.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_dnsupdate.py >index 8387d3b..d541902 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_dnsupdate.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_dnsupdate.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -215,7 +217,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simplePolicy.__init__(self, co, lo, position, dn, superordinate, attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_leasetime.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_leasetime.py >index 59f75b4..f5013f1 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_leasetime.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_leasetime.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -160,7 +162,7 @@ def __setitem__(self, key, value): > univention.admin.handlers.simplePolicy.__setitem__(self, key, value) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_netbios.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_netbios.py >index 9e95869..53ff429 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_netbios.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_netbios.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -152,7 +154,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simplePolicy.__init__(self, co, lo, position, dn, superordinate, attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_routing.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_routing.py >index 4a0f59f..a10c81a 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_routing.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_routing.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -127,7 +129,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simplePolicy.__init__(self, co, lo, position, dn, superordinate, attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_scope.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_scope.py >index 443c6cc..d7e7c43 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_scope.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_scope.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -177,7 +179,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simplePolicy.__init__(self, co, lo, position, dn, superordinate, attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_statements.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_statements.py >index 44d020a..ba4e55b 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_statements.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/dhcp_statements.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -189,7 +191,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simplePolicy.__init__(self, co, lo, position, dn, superordinate, attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/ldapserver.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/ldapserver.py >index ca2dbd2..0b56fff 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/ldapserver.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/ldapserver.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -128,7 +130,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simplePolicy.__init__(self, co, lo, position, dn, superordinate, attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ ('objectClass', ['top', 'univentionPolicy', 'univentionPolicyLDAPServer']) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/maintenance.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/maintenance.py >index fa0ac78..0c28adb 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/maintenance.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/maintenance.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -251,7 +253,7 @@ def __getitem__(self, key): > return value > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ ('objectClass', ['top', 'univentionPolicy', 'univentionPolicyInstallationTime']) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/masterpackages.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/masterpackages.py >index b095a9d..4aedf98 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/masterpackages.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/masterpackages.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -141,7 +143,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simplePolicy.__init__(self, co, lo, position, dn, superordinate, attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ ('objectClass', ['top', 'univentionPolicy', 'univentionPolicyPackagesMaster']) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/memberpackages.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/memberpackages.py >index 1383516..84f0e81 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/memberpackages.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/memberpackages.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -141,7 +143,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simplePolicy.__init__(self, co, lo, position, dn, superordinate, attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ ('objectClass', ['top', 'univentionPolicy', 'univentionPolicyPackagesMember']) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/nfsmounts.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/nfsmounts.py >index c999c86..7043d76 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/nfsmounts.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/nfsmounts.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -134,7 +136,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simplePolicy.__init__(self, co, lo, position, dn, superordinate, attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ ('objectClass', ['top', 'univentionPolicy', 'univentionPolicyNFSMounts']) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/print_quota.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/print_quota.py >index a63a150..140008b 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/print_quota.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/print_quota.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -168,7 +170,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > self.check_entries() > > def _ldap_pre_modify(self): >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/printserver.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/printserver.py >index 9ed3b0a..949b590 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/printserver.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/printserver.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >@@ -128,7 +130,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simplePolicy.__init__(self, co, lo, position, dn, superordinate, attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ ('objectClass', ['top', 'univentionPolicy', 'univentionPolicyPrintServer']) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/pwhistory.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/pwhistory.py >index b9c4841..3c124a0 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/pwhistory.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/pwhistory.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -166,7 +168,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simplePolicy.__init__(self, co, lo, position, dn, superordinate, attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ ('objectClass', ['top', 'univentionPolicy', 'univentionPolicyPWHistory']) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/registry.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/registry.py >index 8f912b2..85ce889 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/registry.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/registry.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -181,7 +183,7 @@ def _custom_policy_result_map( self ): > self.polinfo = self._post_unmap( self.polinfo, values ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/release.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/release.py >index d758ee9..18be291 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/release.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/release.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -140,7 +142,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simplePolicy.__init__(self, co, lo, position, dn, superordinate, attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ ('objectClass', ['top', 'univentionPolicy', 'univentionPolicyUpdate']) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/repositoryserver.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/repositoryserver.py >index c02415d..4c04fc8 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/repositoryserver.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/repositoryserver.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -129,7 +131,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simplePolicy.__init__(self, co, lo, position, dn, superordinate, attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ ('objectClass', ['top', 'univentionPolicy', 'univentionPolicyRepositoryServer']) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/repositorysync.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/repositorysync.py >index 7835770..8392de5 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/repositorysync.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/repositorysync.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -205,7 +207,7 @@ def __getitem__(self, key): > > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ ('objectClass', ['top', 'univentionPolicy', 'univentionPolicyRepositorySync']) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/share_userquota.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/share_userquota.py >index cb1db50..d9bc337 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/share_userquota.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/share_userquota.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -179,7 +181,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simplePolicy.__init__(self, co, lo, position, dn, superordinate, attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ ('objectClass', ['top', 'univentionPolicy', 'univentionPolicyShareUserQuota']) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/slavepackages.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/slavepackages.py >index ff09110..a3f1cb4 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/slavepackages.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/slavepackages.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -141,7 +143,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simplePolicy.__init__(self, co, lo, position, dn, superordinate, attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ ('objectClass', ['top', 'univentionPolicy', 'univentionPolicyPackagesSlave']) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/umc.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/umc.py >index fb65e0d..ccc5b0f 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/umc.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/policies/umc.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax as udm_syntax > import univention.admin.filter as udm_filter >@@ -128,7 +130,7 @@ def __init__( self, co, lo, position, dn = '', superordinate = None, attributes > simplePolicy.__init__( self, co, lo, position, dn, superordinate, attributes ) > > def _ldap_pre_create( self ): >- self.dn = '%s=%s,%s' % (mapping.mapName( 'name' ), mapping.mapValue( 'name', self.info[ 'name' ] ), self.position.getDn() ) >+ self.dn = '%s=%s,%s' % (mapping.mapName( 'name' ), ldap.dn.escape_dn_chars(mapping.mapValue( 'name', self.info[ 'name' ] )), self.position.getDn() ) > > def _ldap_addlist( self ): > return [ ( 'objectClass', [ 'top', 'univentionPolicy', 'umcPolicy' ] ) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/cn.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/cn.py >index 40d0cd1..8afe491 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/cn.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/cn.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.uldap > import univention.admin.syntax >@@ -81,7 +83,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simpleLdap.__init__(self, co, lo, position, dn, superordinate, attributes = attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/default.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/default.py >index a7a842a..539519e 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/default.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/default.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.handlers > import univention.admin.password >@@ -186,7 +188,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simpleLdap.__init__(self, co, lo, position, dn, superordinate, attributes = attributes ) > > def _ldap_pre_create(self): >- self.dn='cn=default containers,cn=univention,%s' % (self.position.getDomain()) >+ self.dn = 'cn=default containers,cn=univention,%s' % (self.position.getDomain()) > > def _ldap_addlist(self): > return [('objectClass', ['top', 'univentionDefault'] ) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/directory.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/directory.py >index 465b549..a3cdb45 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/directory.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/directory.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >@@ -243,7 +245,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simpleLdap.__init__(self, co, lo, position, dn, superordinate, attributes = attributes ) > > def _ldap_pre_create(self): >- self.dn='cn=%s,cn=univention,%s' % (self['name'], self.position.getDomain()) >+ self.dn = 'cn=%s,cn=univention,%s' % (ldap.dn.escape_dn_chars(self['name']), self.position.getDomain()) > > def _ldap_addlist(self): > return [('objectClass', ['top', 'univentionDirectory'] ) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/extended_attribute.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/extended_attribute.py >index 0d3ece6..2d26594 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/extended_attribute.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/extended_attribute.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >@@ -463,7 +465,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simpleLdap.__init__(self, co, lo, position, dn, superordinate, attributes = attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [('objectClass', ['top', 'univentionUDMProperty'] ) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/extended_options.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/extended_options.py >index 22d6a79..689f67d 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/extended_options.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/extended_options.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >@@ -183,7 +185,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > > def _ldap_pre_create(self): > """Create DN.""" >- self.dn = '%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > """Add initial objectClasses.""" >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/ldapacl.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/ldapacl.py >index 140d899..c63afb2 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/ldapacl.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/ldapacl.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > import os > > from univention.admin.layout import Tab, Group >@@ -200,7 +202,7 @@ def open(self): > univention.admin.handlers.simpleLdap.open(self) > > def _ldap_pre_create(self): >- self.dn='cn=%s,%s' % ( mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = 'cn=%s,%s' % ( ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > ocs=['top', 'univentionObjectMetadata', OC] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/ldapschema.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/ldapschema.py >index fca8760..af4f1ab 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/ldapschema.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/ldapschema.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > import os > > from univention.admin.layout import Tab, Group >@@ -174,7 +176,7 @@ def open(self): > univention.admin.handlers.simpleLdap.open(self) > > def _ldap_pre_create(self): >- self.dn='cn=%s,%s' % ( mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = 'cn=%s,%s' % ( ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > ocs=['top', 'univentionObjectMetadata', OC] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/license.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/license.py >index c8b35b1..ae91df2 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/license.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/license.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -368,7 +370,7 @@ def open(self): > self.save() > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ ('objectClass', ['top', 'univentionLicense']) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/packages.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/packages.py >index 46d8fac..ba9468d 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/packages.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/packages.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -101,7 +103,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simpleLdap.__init__(self, co, lo, position, dn, superordinate, attributes = attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ ('objectClass', ['top', 'univentionPackageList']) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/printermodel.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/printermodel.py >index f635c14..c196ece 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/printermodel.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/printermodel.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > import shlex > > from univention.admin.layout import Tab, Group >@@ -114,7 +116,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simpleLdap.__init__(self, co, lo, position, dn, superordinate, attributes = attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ ('objectClass', ['top', 'univentionPrinterModels']) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/printeruri.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/printeruri.py >index b14f945..842e997 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/printeruri.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/printeruri.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -103,7 +105,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simpleLdap.__init__(self, co, lo, position, dn, superordinate, attributes = attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ ('objectClass', ['top', 'univentionPrinterURIs']) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/prohibited_username.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/prohibited_username.py >index 81c9aaf..9b967cf 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/prohibited_username.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/prohibited_username.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.syntax > import univention.admin.filter >@@ -101,7 +103,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simpleLdap.__init__(self, co, lo, position, dn, superordinate, attributes = attributes ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ ('objectClass', ['top', 'univentionProhibitedUsernames']) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/sambaconfig.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/sambaconfig.py >index feebd35..c6bd9ab 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/sambaconfig.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/sambaconfig.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >@@ -225,7 +227,7 @@ def open(self): > univention.admin.handlers.simpleLdap.open(self) > > def _ldap_pre_create(self): >- self.dn='cn=%s,%s' % ( mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = 'cn=%s,%s' % ( ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > ocs=['top', 'univentionSambaConfig'] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/sambadomain.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/sambadomain.py >index e13e098..d82f016 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/sambadomain.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/sambadomain.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > import os > > from univention.admin.layout import Tab, Group >@@ -332,7 +334,7 @@ def open(self): > self['domainPasswordStoreCleartext'] = '1' > > def _ldap_pre_create(self): >- self.dn='sambaDomainName=%s,%s' % ( mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = 'sambaDomainName=%s,%s' % ( ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > self.__update_password_properties() > > def _ldap_pre_modify(self): >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/service.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/service.py >index ae4e617..f373556 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/service.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/service.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >@@ -91,7 +93,7 @@ def open(self): > univention.admin.handlers.simpleLdap.open(self) > > def _ldap_pre_create(self): >- self.dn='cn=%s,%s' % ( mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = 'cn=%s,%s' % ( ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > ocs=['univentionServiceObject'] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/syntax.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/syntax.py >index dfe9b6f..d32a475 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/syntax.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/syntax.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/udm_hook.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/udm_hook.py >index ad4e104..32e9376 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/udm_hook.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/udm_hook.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > import os > > from univention.admin.layout import Tab, Group >@@ -200,7 +202,7 @@ def open(self): > univention.admin.handlers.simpleLdap.open(self) > > def _ldap_pre_create(self): >- self.dn='cn=%s,%s' % ( mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = 'cn=%s,%s' % ( ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > ocs=['top', 'univentionObjectMetadata', OC] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/udm_module.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/udm_module.py >index e48d6b5..1b8c004 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/udm_module.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/udm_module.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >@@ -236,7 +238,7 @@ def open(self): > univention.admin.handlers.simpleLdap.open(self) > > def _ldap_pre_create(self): >- self.dn='cn=%s,%s' % ( mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = 'cn=%s,%s' % ( ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > ocs=['top', 'univentionObjectMetadata', OC] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/udm_syntax.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/udm_syntax.py >index 218dd29..a1fe87c 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/udm_syntax.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/udm_syntax.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > import os > > from univention.admin.layout import Tab, Group >@@ -200,7 +202,7 @@ def open(self): > univention.admin.handlers.simpleLdap.open(self) > > def _ldap_pre_create(self): >- self.dn='cn=%s,%s' % ( mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = 'cn=%s,%s' % ( ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > ocs=['top', 'univentionObjectMetadata', OC] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/umc_operationset.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/umc_operationset.py >index 6517dda..5457044 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/umc_operationset.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/umc_operationset.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter as udm_filter > import univention.admin.syntax as udm_syntax >@@ -141,7 +143,7 @@ def __init__( self, co, lo, position, dn = '', superordinate = None, attributes > simpleLdap.__init__( self, co, lo, position, dn, superordinate, attributes = attributes ) > > def _ldap_pre_create( self ): >- self.dn='%s=%s,%s' % ( mapping.mapName( 'name' ), mapping.mapValue( 'name', self.info[ 'name' ] ), self.position.getDn() ) >+ self.dn = '%s=%s,%s' % ( mapping.mapName( 'name' ), ldap.dn.escape_dn_chars(mapping.mapValue( 'name', self.info[ 'name' ] )), self.position.getDn() ) > > def _ldap_addlist( self ): > return [ ( 'objectClass', [ 'top', 'umcOperationSet' ] ) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/usertemplate.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/usertemplate.py >index 07fad34..f7851ab 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/usertemplate.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/usertemplate.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >@@ -453,7 +455,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > mungeddial.Support.__init__( self ) > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > return [ ('objectClass', ['top', 'univentionUserTemplate'] ) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/xconfig_choices.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/xconfig_choices.py >index 7d841e0..116586e 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/xconfig_choices.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/settings/xconfig_choices.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > from univention.admin.layout import Tab, Group > import univention.admin.filter > import univention.admin.handlers >@@ -205,7 +207,7 @@ def __init__(self, co, lo, position, dn='', superordinate=None, attributes = [] > univention.admin.handlers.simpleLdap.__init__(self, co, lo, position, dn, superordinate, attributes = attributes ) > > def _ldap_pre_create(self): >- self.dn='cn=%s,cn=univention,%s' % (self['name'], self.position.getDomain()) >+ self.dn = 'cn=%s,cn=univention,%s' % (ldap.dn.escape_dn_chars(self['name']), self.position.getDomain()) > > def _ldap_addlist(self): > return [('objectClass', ['top', 'univentionXConfigurationChoices'] ) ] >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/shares/printer.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/shares/printer.py >index e2d02f8..09fcc54 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/shares/printer.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/shares/printer.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > import re > import string > >@@ -313,7 +315,7 @@ def open(self): > self.save() > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > # cut off '/' at the beginning of the destination if it exists and protocol is file:/ > if self[ 'uri' ] and self[ 'uri' ][ 0 ] == 'file:/' and self[ 'uri' ][ 1 ][ 0 ] == '/': > self[ 'uri' ][ 1 ] = re.sub( r'^/+', '', self[ 'uri' ][ 1 ] ) >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/shares/printergroup.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/shares/printergroup.py >index 00eb6e1..8511c08 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/shares/printergroup.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/shares/printergroup.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > import string > > from univention.admin.layout import Tab, Group >@@ -174,7 +176,7 @@ def open(self): > self.save() > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > self.isValidPrinterObject() #check all members > > >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/shares/share.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/shares/share.py >index fac285a..37de111 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/shares/share.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/shares/share.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > import re > import copy > >@@ -856,7 +858,7 @@ def open(self): > self.save() > > def _ldap_pre_create(self): >- self.dn='%s=%s,%s' % (mapping.mapName('name'), mapping.mapValue('name', self.info['name']), self.position.getDn()) >+ self.dn = '%s=%s,%s' % (mapping.mapName('name'), ldap.dn.escape_dn_chars(mapping.mapValue('name', self.info['name'])), self.position.getDn()) > > def _ldap_addlist(self): > >diff --git a/management/univention-directory-manager-modules/modules/univention/admin/handlers/users/user.py b/management/univention-directory-manager-modules/modules/univention/admin/handlers/users/user.py >index b8d84dd..bdb5f77 100644 >--- a/management/univention-directory-manager-modules/modules/univention/admin/handlers/users/user.py >+++ b/management/univention-directory-manager-modules/modules/univention/admin/handlers/users/user.py >@@ -30,6 +30,8 @@ > # /usr/share/common-licenses/AGPL-3; if not, see > # <http://www.gnu.org/licenses/>. > >+import ldap >+ > import hashlib > import os > import string >@@ -1776,7 +1778,7 @@ def _check_uid_gid_uniqueness(self): > def _ldap_pre_create(self): > _d=univention.debug.function('admin.handlers.users.user.object._ldap_pre_create') > >- self.dn='uid=%s,%s' % ( self['username'], self.position.getDn()) >+ self.dn = 'uid=%s,%s' % (ldap.dn.escape_dn_chars(self['username']), self.position.getDn()) > univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'users/user: dn was set to %s'%self.dn) > if not self['password']: > self['password']=self.oldattr.get('password',[''])[0]
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 40041
: 7314