diff --git a/product/CMFCategory/CategoryTool.py b/product/CMFCategory/CategoryTool.py index bbc60ecb3e6dc6742e55c1884185454d57bf2509..8323bad8a5bcadcb72e339f0de0a8ebd4e5b9ec7 100644 --- a/product/CMFCategory/CategoryTool.py +++ b/product/CMFCategory/CategoryTool.py @@ -781,7 +781,7 @@ class CategoryTool( UniqueObject, Folder, Base ): #LOG('getSingleCategoryMembershipList', 0, 'base_category = %s, spec = %s, base = %s, context = %s, context.aq_inner.aq_parent = %s' % (repr(base_category), repr(spec), repr(base), repr(context), repr(context.aq_inner.aq_parent))) if base_category == 'parent': parent = context.aq_inner.aq_parent # aq_inner is required to make sure we use containment - if not spec or parent.portal_type in spec: + if parent.portal_type in spec: parent_relative_url = parent.getRelativeUrl() if (checked_permission is None) or \ (permissionFilter(parent_relative_url) is not None): diff --git a/product/CMFCategory/tests/testCMFCategory.py b/product/CMFCategory/tests/testCMFCategory.py index fee45fef21c70b01d626f229b918bac431dcacb1..1aa94d106ae60a867cdd32207cef8a5d67c36680 100644 --- a/product/CMFCategory/tests/testCMFCategory.py +++ b/product/CMFCategory/tests/testCMFCategory.py @@ -934,26 +934,41 @@ class TestCMFCategory(ERP5TypeTestCase): obj = self.portal.person_module.newContent(portal_type='Person') parent_url = self.portal.person_module.getRelativeUrl() - self.assertEquals([parent_url], + self.assertEquals([], pc.getSingleCategoryMembershipList(obj, 'parent')) self.assertEquals([parent_url], pc.getSingleCategoryMembershipList(obj, 'parent', portal_type='Person Module')) + self.assertEquals([], pc.getSingleCategoryMembershipList(obj, 'parent', portal_type='Organisation')) - self.assertEquals(['parent/%s' % parent_url], + self.assertEquals([], pc.getSingleCategoryMembershipList(obj, 'parent', base=1)) - self.assertEquals([parent_url], + self.assertEquals(['parent/%s' % parent_url], + pc.getSingleCategoryMembershipList(obj, 'parent', base=1, + portal_type='Person Module')) + + self.assertEquals([], pc.getSingleCategoryMembershipList(obj, 'parent', checked_permission='View')) + + self.assertEquals([parent_url], + pc.getSingleCategoryMembershipList(obj, 'parent', + checked_permission='View', + portal_type='Person Module')) + noSecurityManager() self.assertEquals([], pc.getSingleCategoryMembershipList(obj, 'parent', checked_permission='Manage portal')) + self.assertEquals([], + pc.getSingleCategoryMembershipList(obj, 'parent', + checked_permission='Manage portal', + portal_type='Person Module')) def test_suite():