diff --git a/lib/classes/JsonApi/Schemas/CourseMember.php b/lib/classes/JsonApi/Schemas/CourseMember.php
index e68264072c8e1bb8cec2389771095b59bbd88b83..4a69d4e1793fe8c0f52831a8eeabfa62cad525b7 100644
--- a/lib/classes/JsonApi/Schemas/CourseMember.php
+++ b/lib/classes/JsonApi/Schemas/CourseMember.php
@@ -30,7 +30,6 @@ class CourseMember extends SchemaProvider
 
         if ($this->currentUser) {
             if (MembershipAuthority::canIndexMembershipsOfUser($this->currentUser, $membership->user)) {
-                # TODO: $attributes['notification'] = (int) $membership->notification;
                 $attributes['visible'] = $membership->visible;
             }
             if (CourseAuthority::canEditCourse($this->currentUser, $membership->course)) {
@@ -49,16 +48,18 @@ class CourseMember extends SchemaProvider
         $relationships = [];
 
         if ($isPrimary) {
+            $course = \Course::build(['id' => $membership['seminar_id']], false);
             $relationships[self::REL_COURSE] = [
                 self::RELATIONSHIP_LINKS => [
-                    Link::RELATED => $this->createLinkToResource($membership->course)
+                    Link::RELATED => $this->createLinkToResource($course)
                 ],
                 self::RELATIONSHIP_DATA => $membership->course,
             ];
 
+            $user = \User::build(['id' => $membership['user_id']], false);
             $relationships[self::REL_USER] = [
                 self::RELATIONSHIP_LINKS => [
-                    Link::RELATED => $this->createLinkToResource($membership->user)
+                    Link::RELATED => $this->createLinkToResource($user)
                 ],
                 self::RELATIONSHIP_DATA => $membership->user,
             ];
diff --git a/resources/vue/store/courseware/courseware.module.js b/resources/vue/store/courseware/courseware.module.js
index 4bf0dfb1b1ac53556806768b9851f2001c87da99..8a4326f0fa6848ea123a74612d64be07cf0282e4 100755
--- a/resources/vue/store/courseware/courseware.module.js
+++ b/resources/vue/store/courseware/courseware.module.js
@@ -886,48 +886,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) {