|
18 | 18 |
|
19 | 19 |
|
20 | 20 | class TestContentGet(unittest.TestCase): |
21 | | - |
22 | 21 | layer = PLONE_RESTAPI_DX_FUNCTIONAL_TESTING |
23 | 22 |
|
24 | 23 | def setUp(self): |
@@ -137,6 +136,31 @@ def test_get_content_includes_related_items(self): |
137 | 136 | response.json()["relatedItems"], |
138 | 137 | ) |
139 | 138 |
|
| 139 | + def test_get_content_includes_related_items_filtered_by_view_permission(self): |
| 140 | + intids = getUtility(IIntIds) |
| 141 | + self.portal.folder1.doc1.relatedItems = [ |
| 142 | + RelationValue(intids.getId(self.portal.folder1.folder2.doc2)), |
| 143 | + ] |
| 144 | + |
| 145 | + # Remove view permission |
| 146 | + self.portal.folder1.folder2.doc2.manage_permission( |
| 147 | + "View", roles=[], acquire=False |
| 148 | + ) |
| 149 | + self.portal.folder1.folder2.doc2.reindexObjectSecurity() |
| 150 | + transaction.commit() |
| 151 | + |
| 152 | + response = requests.get( |
| 153 | + self.portal.folder1.doc1.absolute_url(), |
| 154 | + headers={"Accept": "application/json"}, |
| 155 | + auth=(SITE_OWNER_NAME, SITE_OWNER_PASSWORD), |
| 156 | + ) |
| 157 | + self.assertEqual(response.status_code, 200) |
| 158 | + self.assertEqual(0, len(response.json()["relatedItems"])) |
| 159 | + self.assertEqual( |
| 160 | + [], |
| 161 | + response.json()["relatedItems"], |
| 162 | + ) |
| 163 | + |
140 | 164 | def test_get_content_related_items_without_workflow(self): |
141 | 165 | intids = getUtility(IIntIds) |
142 | 166 |
|
|
0 commit comments