diff --git a/resources/vue/store/courseware/courseware.module.js b/resources/vue/store/courseware/courseware.module.js
index bb101d5cb7a52fb187372a5769863dc83ec3ea84..5ad606886c6bac84128bfbfe24ff04ebd842deb5 100755
--- a/resources/vue/store/courseware/courseware.module.js
+++ b/resources/vue/store/courseware/courseware.module.js
@@ -894,48 +894,28 @@ export const actions = {
         );
     },
 
-    async loadTeacherStatus({ dispatch, rootGetters, state, commit, getters }, userId) {
-        const parent = {
-            type: 'users',
-            id: userId,
-        };
-        const relationship = 'course-memberships';
-        const options = {
-            include: 'course',
-        };
-        await dispatch('loadRelatedPaginated', {
-            type: 'course-memberships',
-            parent,
-            relationship,
-            options
-        });
-
-        const memberships = rootGetters['course-memberships/related']({
-            parent,
-            relationship,
-        });
-        let isTeacher = false;
-        memberships.forEach((membership) => {
-            if (getters.courseware.attributes['editing-permission-level'] === 'dozent') {
-                if (
-                    membership.attributes.permission === 'dozent' &&
-                        state.context.id === membership.relationships.course.data.id
-                ) {
-                    isTeacher = true;
-                }
-            }
-            if (getters.courseware.attributes['editing-permission-level'] === 'tutor') {
-                if (
-                    (membership.attributes.permission === 'dozent' ||
-                     membership.attributes.permission === 'tutor') &&
-                        state.context.id === membership.relationships.course.data.id
-                ) {
-                    isTeacher = true;
+    loadTeacherStatus({ dispatch, rootGetters, state, commit, getters }, userId) {
+        const membershipId = `${state.context.id}_${userId}`;
+
+        return dispatch('course-memberships/loadById', { id: membershipId })
+            .then(() => {
+                const membership = rootGetters['course-memberships/byId']({ id: membershipId });
+                const editingLevel = getters.courseware.attributes['editing-permission-level'];
+                const membershipPermission = membership.attributes.permission;
+
+                let isTeacher = false;
+                if (editingLevel === 'dozent') {
+                    isTeacher = membershipPermission === 'dozent';
+                } else if (editingLevel === 'tutor') {
+                    isTeacher = membershipPermission === 'dozent' || membershipPermission === 'tutor';
                 }
-            }
-        });
 
-        return commit('setUserIsTeacher', isTeacher);
+                commit('setUserIsTeacher', isTeacher);
+            })
+            .catch((error) => {
+                console.error(`Could not find course membership for ${membershipId}.`);
+                commit('setUserIsTeacher', false);
+            });
     },
 
     loadFeedback({ dispatch }, blockId) {