Quick fix

This commit is contained in:
Tiago Ribeiro
2024-10-18 14:24:47 +01:00
parent 87d7d6f12b
commit 70a027f85b

View File

@@ -9,7 +9,7 @@ import useExams from "@/hooks/useExams";
import {useListSearch} from "@/hooks/useListSearch"; import {useListSearch} from "@/hooks/useListSearch";
import usePagination from "@/hooks/usePagination"; import usePagination from "@/hooks/usePagination";
import {Module} from "@/interfaces"; import {Module} from "@/interfaces";
import {EntityWithRoles} from "@/interfaces/entity"; import {EntityWithRoles, WithEntity} from "@/interfaces/entity";
import {InstructorGender, Variant} from "@/interfaces/exam"; import {InstructorGender, Variant} from "@/interfaces/exam";
import {Assignment} from "@/interfaces/results"; import {Assignment} from "@/interfaces/results";
import {Group, User} from "@/interfaces/user"; import {Group, User} from "@/interfaces/user";
@@ -20,6 +20,7 @@ import {getEntitiesWithRoles} from "@/utils/entities.be";
import {getGroups, getGroupsByEntities} from "@/utils/groups.be"; import {getGroups, getGroupsByEntities} from "@/utils/groups.be";
import {checkAccess, findAllowedEntities} from "@/utils/permissions"; import {checkAccess, findAllowedEntities} from "@/utils/permissions";
import {calculateAverageLevel} from "@/utils/score"; import {calculateAverageLevel} from "@/utils/score";
import { isAdmin } from "@/utils/users";
import {getEntitiesUsers, getUsers} from "@/utils/users.be"; import {getEntitiesUsers, getUsers} from "@/utils/users.be";
import axios from "axios"; import axios from "axios";
import clsx from "clsx"; import clsx from "clsx";
@@ -45,15 +46,15 @@ export const getServerSideProps = withIronSessionSsr(async ({req, res}) => {
const allowedEntities = findAllowedEntities(user, entities, 'create_assignment') const allowedEntities = findAllowedEntities(user, entities, 'create_assignment')
if (allowedEntities.length === 0) return redirect("/assignments") if (allowedEntities.length === 0) return redirect("/assignments")
const users = await (checkAccess(user, ["developer", "admin"]) ? getUsers() : getEntitiesUsers(mapBy(allowedEntities, 'id'))); const users = await (isAdmin(user) ? getUsers() : getEntitiesUsers(mapBy(allowedEntities, 'id')));
const groups = await (checkAccess(user, ["developer", "admin"]) ? getGroups() : getGroupsByEntities(mapBy(allowedEntities, 'id'))); const groups = await (isAdmin(user) ? getGroups() : getGroupsByEntities(mapBy(allowedEntities, 'id')));
return {props: serialize({user, users, entities, groups})}; return {props: serialize({user, users, entities, groups})};
}, sessionOptions); }, sessionOptions);
interface Props { interface Props {
assignment: Assignment; assignment: Assignment;
groups: Group[]; groups: WithEntity<Group>[];
user: User; user: User;
users: User[]; users: User[];
entities: EntityWithRoles[]; entities: EntityWithRoles[];
@@ -95,7 +96,7 @@ export default function AssignmentsPage({user, users, groups, entities}: Props)
const {exams} = useExams(); const {exams} = useExams();
const router = useRouter(); const router = useRouter();
const classrooms = useMemo(() => groups.filter((e) => e.entity === entity), [entity, groups]); const classrooms = useMemo(() => groups.filter((e) => e.entity?.id === entity), [entity, groups]);
const allowedUsers = useMemo(() => users.filter((u) => mapBy(u.entities, 'id').includes(entity || "")), [users, entity]) const allowedUsers = useMemo(() => users.filter((u) => mapBy(u.entities, 'id').includes(entity || "")), [users, entity])
const userStudents = useMemo(() => allowedUsers.filter((x) => x.type === "student"), [allowedUsers]); const userStudents = useMemo(() => allowedUsers.filter((x) => x.type === "student"), [allowedUsers]);