aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRon Lucke <lucke@elan-ev.de>2022-08-30 12:48:32 +0000
committerJan-Hendrik Willms <tleilax+studip@gmail.com>2022-08-30 12:48:32 +0000
commit8d83eb80528540a35ae9be21ebd0842e10b126ce (patch)
tree3f9f4e669839ce42bc43accc71f3e83f0a16871b
parentad677ea19f21d5fd02aebe11a3c8c8b99141b24f (diff)
fix #994
Closes #994 Merge request studip/studip!932
-rw-r--r--resources/vue/store/courseware/courseware.module.js47
1 files changed, 28 insertions, 19 deletions
diff --git a/resources/vue/store/courseware/courseware.module.js b/resources/vue/store/courseware/courseware.module.js
index e627d37..85b7d11 100644
--- a/resources/vue/store/courseware/courseware.module.js
+++ b/resources/vue/store/courseware/courseware.module.js
@@ -1064,8 +1064,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);
@@ -1074,25 +1078,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) {