diff --git a/server/src/uds/osmanagers/LinuxOsManager/linux_ad_osmanager.py b/server/src/uds/osmanagers/LinuxOsManager/linux_ad_osmanager.py index 55ea192cc..6661abf75 100644 --- a/server/src/uds/osmanagers/LinuxOsManager/linux_ad_osmanager.py +++ b/server/src/uds/osmanagers/LinuxOsManager/linux_ad_osmanager.py @@ -31,6 +31,7 @@ Author: Alexander Burmatov, thatman at altlinux dot org """ import logging +import re import typing from django.utils.translation import gettext_lazy @@ -155,7 +156,9 @@ class LinuxOsADManager(LinuxOsManager): raise exceptions.ui.ValidationError(_('Must provide an account to add machines to domain!')) if self.password.as_str() == '': raise exceptions.ui.ValidationError(_('Must provide a password for the account!')) - self.ou.value = self.ou.value.strip() + + # Remove spaces around , and = in ou + self.ou.value = re.sub(r'\s*([,=])\s*', r'\1', self.ou.value.strip()) def actor_data(self, userservice: 'UserService') -> types.osmanagers.ActorData: return types.osmanagers.ActorData( diff --git a/server/src/uds/osmanagers/WindowsOsManager/windows_domain.py b/server/src/uds/osmanagers/WindowsOsManager/windows_domain.py index 6c44fc212..7d98b825a 100644 --- a/server/src/uds/osmanagers/WindowsOsManager/windows_domain.py +++ b/server/src/uds/osmanagers/WindowsOsManager/windows_domain.py @@ -33,6 +33,7 @@ Author: Adolfo Gómez, dkmaster at dkmon dot com """ import codecs import logging +import re import typing import collections.abc @@ -136,8 +137,11 @@ class WinDomainOsManager(WindowsOsManager): super().initialize(values) if values: # Some cleaning of input data (remove spaces, etc..) - for fld in (self.domain, self.account, self.ou, self.grp, self.server_hint): + for fld in (self.domain, self.account, self.grp, self.server_hint): fld.value = fld.value.strip().replace(' ', '') + + # Remove spaces around , and = in ou + self.ou.value = re.sub(r'\s*([,=])\s*', r'\1', self.ou.value.strip()) if self.domain.as_str() == '': raise exceptions.ui.ValidationError(_('Must provide a domain!'))