diff --git a/resources/vue/store/courseware/courseware.module.js b/resources/vue/store/courseware/courseware.module.js index 49ac520a5d43ef84ec139b7f03458c3cc224c73e..973e14ae39adfd6b5f6193500d7a398b85b90aef 100644 --- a/resources/vue/store/courseware/courseware.module.js +++ b/resources/vue/store/courseware/courseware.module.js @@ -1072,8 +1072,12 @@ export const actions = { ); }, - loadTeacherStatus({ dispatch, rootGetters, state, commit, getters }, userId) { - const user = rootGetters['users/byId']({ id: userId }); + async loadTeacherStatus({ dispatch, rootGetters, state, commit, getters }, userId) { + let user = rootGetters['users/byId']({ id: userId }); + if (!user) { + await dispatch('users/loadById', { id: userId }); + user = rootGetters['users/byId']({ id: userId }); + } if (user.attributes.permission === 'root') { commit('setUserIsTeacher', true); @@ -1082,25 +1086,30 @@ export const actions = { 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; + await dispatch('course-memberships/loadById', { id: membershipId }); + const membership = rootGetters['course-memberships/byId']({ id: membershipId }); + if (membership) { + let editingLevel = 'tutor'; + if (getters.courseware.attributes) { + 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'; - } + let isTeacher = false; + if (editingLevel === 'dozent') { + isTeacher = membershipPermission === 'dozent'; + } else if (editingLevel === 'tutor') { + isTeacher = membershipPermission === 'dozent' || membershipPermission === 'tutor'; + } + commit('setUserIsTeacher', isTeacher); - commit('setUserIsTeacher', isTeacher); - }) - .catch((error) => { - console.error(`Could not find course membership for ${membershipId}.`); - commit('setUserIsTeacher', false); - }); + return true; + } else { + console.error(`Could not find course membership for ${membershipId}.`); + commit('setUserIsTeacher', false); + + return false; + } }, loadFeedback({ dispatch }, blockId) {