From 9ea5b9bf17cd3391816a50ed12427e42a0feaca9 Mon Sep 17 00:00:00 2001 From: Anuj Borah Date: Jul 23 2019 17:26:01 +0000 Subject: Issue 50511 - lib389 PosixGroups type can not handle rdn properly Description: lib389 PosixGroups type can not handle rdn properly Fixes: https://pagure.io/389-ds-base/issue/50511 Author: aborah Reviewed by: Simon Pichugin, Matus Honek --- diff --git a/src/lib389/lib389/idm/group.py b/src/lib389/lib389/idm/group.py index 29ca17f..ce6edc2 100644 --- a/src/lib389/lib389/idm/group.py +++ b/src/lib389/lib389/idm/group.py @@ -95,10 +95,10 @@ class Groups(DSLdapObjects): ] self._filterattrs = [RDN] self._childobject = Group - if rdn: - self._basedn = '{},{}'.format(ensure_str(rdn), ensure_str(basedn)) - else: + if rdn is None: self._basedn = ensure_str(basedn) + else: + self._basedn = '{},{}'.format(ensure_str(rdn), ensure_str(basedn)) class UniqueGroup(DSLdapObject): @@ -137,10 +137,11 @@ class UniqueGroups(DSLdapObjects): ] self._filterattrs = [RDN] self._childobject = UniqueGroup - if rdn: - self._basedn = '{},{}'.format(ensure_str(rdn), ensure_str(basedn)) - else: + if rdn is None: self._basedn = ensure_str(basedn) + else: + self._basedn = '{},{}'.format(ensure_str(rdn), ensure_str(basedn)) + diff --git a/src/lib389/lib389/idm/posixgroup.py b/src/lib389/lib389/idm/posixgroup.py index a765016..263fce3 100644 --- a/src/lib389/lib389/idm/posixgroup.py +++ b/src/lib389/lib389/idm/posixgroup.py @@ -7,7 +7,7 @@ # --- END COPYRIGHT BLOCK --- from lib389._mapped_object import DSLdapObject, DSLdapObjects -from lib389.utils import ds_is_older +from lib389.utils import ds_is_older, ensure_str MUST_ATTRIBUTES = [ 'cn', @@ -76,6 +76,7 @@ class PosixGroups(DSLdapObjects): ] self._filterattrs = [RDN] self._childobject = PosixGroup - self._basedn = '{},{}'.format(rdn, basedn) - - + if rdn is None: + self._basedn = ensure_str(basedn) + else: + self._basedn = '{},{}'.format(ensure_str(rdn), ensure_str(basedn))