diff --git a/src/pages/Assignment/Assignment.js b/src/pages/Assignment/Assignment.js
index 02091768d..a5872b356 100644
--- a/src/pages/Assignment/Assignment.js
+++ b/src/pages/Assignment/Assignment.js
@@ -31,7 +31,7 @@ import { loggedInUserIdSelector } from '../../redux/selectors/auth';
import {
isStudentOf,
isSupervisorOf,
- isLoggedAsSuperAdmin
+ isAdminOf
} from '../../redux/selectors/users';
import Page from '../../components/layout/Page';
@@ -91,9 +91,9 @@ class Assignment extends Component {
userId,
loggedInUserId,
init,
- isSuperAdmin,
isStudentOf,
isSupervisorOf,
+ isAdminOf,
canSubmit,
runtimeEnvironments,
exerciseSync,
@@ -129,17 +129,19 @@ class Assignment extends Component {
{
resource: assignment,
iconName: 'puzzle-piece',
- breadcrumb: assignment => (
- {
- text: (
-
- ),
- link: ({ EXERCISE_URI_FACTORY }) =>
- (isSuperAdmin || isSupervisorOf(assignment.groupId)) ? EXERCISE_URI_FACTORY(assignment.exerciseId) : '#'
- })
+ breadcrumb: assignment => ({
+ text: (
+
+ ),
+ link: ({ EXERCISE_URI_FACTORY }) =>
+ isAdminOf(assignment.groupId) ||
+ isSupervisorOf(assignment.groupId)
+ ? EXERCISE_URI_FACTORY(assignment.exerciseId)
+ : '#'
+ })
},
{
text: (
@@ -161,7 +163,8 @@ class Assignment extends Component {
}
- {(isSuperAdmin || isSupervisorOf(assignment.groupId)) &&
+ {(isSupervisorOf(assignment.groupId) ||
+ isAdminOf(assignment.groupId)) && // includes superadmin
}
- {(isSuperAdmin || isSupervisorOf(assignment.groupId)) &&
+ {(isSupervisorOf(assignment.groupId) ||
+ isAdminOf(assignment.groupId)) && // includes superadmin
isStudentOf(loggedInUserId, groupId)(state),
isSupervisorOf: groupId =>
isSupervisorOf(loggedInUserId, groupId)(state),
+ isAdminOf: groupId => isAdminOf(loggedInUserId, groupId)(state),
canSubmit: canSubmitSolution(assignmentId)(state),
submissions: getUserSubmissions(userId, assignmentId)(state)
};
diff --git a/src/pages/EditAssignment/EditAssignment.js b/src/pages/EditAssignment/EditAssignment.js
index 63ceee1f4..c40ac551b 100644
--- a/src/pages/EditAssignment/EditAssignment.js
+++ b/src/pages/EditAssignment/EditAssignment.js
@@ -26,16 +26,14 @@ import { getAssignment } from '../../redux/selectors/assignments';
import { canSubmitSolution } from '../../redux/selectors/canSubmit';
import { runtimeEnvironmentsSelector } from '../../redux/selectors/runtimeEnvironments';
import { isSubmitting } from '../../redux/selectors/submission';
-import {
- isSupervisorOf,
- isLoggedAsSuperAdmin
-} from '../../redux/selectors/users';
+import { isSupervisorOf, isAdminOf } from '../../redux/selectors/users';
import { fetchRuntimeEnvironments } from '../../redux/modules/runtimeEnvironments';
import { isReady, getJsData } from '../../redux/helpers/resourceManager';
import { ResubmitAllSolutionsContainer } from '../../containers/ResubmitSolutionContainer';
import AssignmentSync from '../../components/Assignments/Assignment/AssignmentSync';
import withLinks from '../../hoc/withLinks';
+import { loggedInUserIdSelector } from '../../redux/selectors/auth';
class EditAssignment extends Component {
componentWillMount = () => this.props.loadAsync();
@@ -62,25 +60,26 @@ class EditAssignment extends Component {
pointsPercentualThreshold,
...rest
}) => ({
- firstDeadline: moment.unix(firstDeadline),
- secondDeadline: moment.unix(secondDeadline),
- pointsPercentualThreshold: pointsPercentualThreshold * 100,
- ...rest
- });
+ firstDeadline: moment.unix(firstDeadline),
+ secondDeadline: moment.unix(secondDeadline),
+ pointsPercentualThreshold: pointsPercentualThreshold * 100,
+ ...rest
+ });
render() {
const {
links: {
ASSIGNMENT_DETAIL_URI_FACTORY,
- GROUP_URI_FACTORY,
- SUPERVISOR_STATS_URI_FACTORY,
- EXERCISE_URI_FACTORY
+ GROUP_URI_FACTORY,
+ SUPERVISOR_STATS_URI_FACTORY,
+ EXERCISE_URI_FACTORY
},
params: { assignmentId },
push,
assignment,
editAssignment,
- isSuperAdmin,
+ isSupervisorOf,
+ isAdminOf,
formValues,
exerciseSync
} = this.props;
@@ -130,7 +129,8 @@ class EditAssignment extends Component {
- {(isSuperAdmin || isSupervisorOf(assignment.groupId)) &&
+ {(isAdminOf(assignment.groupId) ||
+ isSupervisorOf(assignment.groupId)) &&
}
- {(isSuperAdmin || isSupervisorOf(assignment.groupId)) &&
+ {(isAdminOf(assignment.groupId) ||
+ isSupervisorOf(assignment.groupId)) &&
{
+ const loggedInUserId = loggedInUserIdSelector(state);
return {
assignment: getAssignment(state)(assignmentId),
runtimeEnvironments: runtimeEnvironmentsSelector(state),
submitting: isSubmitting(state),
- isSuperAdmin: isLoggedAsSuperAdmin(state),
canSubmit: canSubmitSolution(assignmentId)(state),
- formValues: getFormValues('editAssignment')(state)
+ formValues: getFormValues('editAssignment')(state),
+ isSupervisorOf: groupId =>
+ isSupervisorOf(loggedInUserId, groupId)(state),
+ isAdminOf: groupId => isAdminOf(loggedInUserId, groupId)(state)
};
},
(dispatch, { params: { assignmentId } }) => ({