fix: preserve leading dots in group folders
This commit is contained in:
@@ -277,7 +277,7 @@ def parse_groups_from_ldap_output(output: str) -> List[Dict[str, object]]:
|
|||||||
|
|
||||||
def sanitize_group_folder_name(raw_name: str) -> str:
|
def sanitize_group_folder_name(raw_name: str) -> str:
|
||||||
candidate = GROUP_FOLDER_INVALID_RE.sub("_", raw_name.strip())
|
candidate = GROUP_FOLDER_INVALID_RE.sub("_", raw_name.strip())
|
||||||
candidate = candidate.strip().strip(".")
|
candidate = candidate.strip().rstrip(".")
|
||||||
candidate = re.sub(r"\s+", " ", candidate)
|
candidate = re.sub(r"\s+", " ", candidate)
|
||||||
if not candidate:
|
if not candidate:
|
||||||
return ""
|
return ""
|
||||||
|
|||||||
@@ -24,6 +24,17 @@ def principal(dn, sam, classes, members=()):
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class GroupFolderNameTests(unittest.TestCase):
|
||||||
|
def test_sanitizer_preserves_leading_dot(self):
|
||||||
|
self.assertEqual(rs.sanitize_group_folder_name(".Finance"), ".Finance")
|
||||||
|
self.assertEqual(rs.sanitize_group_folder_name("..Finance"), "..Finance")
|
||||||
|
|
||||||
|
def test_sanitizer_still_rejects_dot_only_names(self):
|
||||||
|
self.assertEqual(rs.sanitize_group_folder_name("."), "")
|
||||||
|
self.assertEqual(rs.sanitize_group_folder_name(".."), "")
|
||||||
|
self.assertEqual(rs.sanitize_group_folder_name("Finance."), "Finance")
|
||||||
|
|
||||||
|
|
||||||
class LdapParsingTests(unittest.TestCase):
|
class LdapParsingTests(unittest.TestCase):
|
||||||
def test_parser_keeps_repeated_members_and_unfolds_lines(self):
|
def test_parser_keeps_repeated_members_and_unfolds_lines(self):
|
||||||
display_name = base64.b64encode(b"Data Folder").decode("ascii")
|
display_name = base64.b64encode(b"Data Folder").decode("ascii")
|
||||||
|
|||||||
Reference in New Issue
Block a user