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; }, []);