diff --git a/resources/vue/components/courseware/CoursewareTableOfContentsBlock.vue b/resources/vue/components/courseware/CoursewareTableOfContentsBlock.vue
index 0a0ea00e7dc4bd8365aa0ad474a1352ec989be5b..f6b45265e0b134cc9fcf23c2b2f1004eeef08788 100755
--- a/resources/vue/components/courseware/CoursewareTableOfContentsBlock.vue
+++ b/resources/vue/components/courseware/CoursewareTableOfContentsBlock.vue
@@ -111,7 +111,10 @@ export default {
             let children = this.structuralElement.relationships.children.data;
             let childElements = [];
             children.forEach((element) => {
-                childElements.push(view.structuralElementById({ id: element.id }));
+                let childElement = view.structuralElementById({ id: element.id });
+                if (childElement.attributes['can-read']) {
+                    childElements.push(childElement);
+                }
             });
 
             return childElements;
diff --git a/resources/vue/components/courseware/IndexApp.vue b/resources/vue/components/courseware/IndexApp.vue
index 5a657e2df149265cfd614746b132ec78b51e1004..dde33980a5ee2af7bc0d4de07489eb50721ba362 100755
--- a/resources/vue/components/courseware/IndexApp.vue
+++ b/resources/vue/components/courseware/IndexApp.vue
@@ -56,20 +56,22 @@ export default {
 
 function buildNodes(structuralElements, relatedStructuralElement) {
     return structuralElements.reduce((memo, element) => {
-        memo.push({
-            id: element.id,
-            parent:
-                relatedStructuralElement({
-                    parent: element,
-                    relationship: 'parent',
-                })?.id ?? null,
+        if (element.attributes['can-read']) {
+            memo.push({
+                id: element.id,
+                parent:
+                    relatedStructuralElement({
+                        parent: element,
+                        relationship: 'parent',
+                    })?.id ?? null,
 
-            children:
-                relatedStructuralElement({
-                    parent: element,
-                    relationship: 'children',
-                })?.map((child) => child.id) ?? [],
-        });
+                children:
+                    relatedStructuralElement({
+                        parent: element,
+                        relationship: 'children',
+                    })?.map((child) => child.id) ?? [],
+            });
+        }
 
         return memo;
     }, []);