diff --git a/src/pages/(admin)/Lists/ExamList.tsx b/src/pages/(admin)/Lists/ExamList.tsx index e7ebb776..2c381d02 100644 --- a/src/pages/(admin)/Lists/ExamList.tsx +++ b/src/pages/(admin)/Lists/ExamList.tsx @@ -61,6 +61,8 @@ const ExamOwnerSelector = ({options, exam, onSave}: {options: User[]; exam: Exam export default function ExamList({user, entities = []}: {user: User, entities: EntityWithRoles[]}) { const [selectedExam, setSelectedExam] = useState(); + const isAdmin = useMemo(() => ["developer", "admin"].includes(user?.type), [user?.type]) + const {exams, reload} = useExams(); const {users} = useUsers(); const {groups} = useGroups({admin: user?.id, userType: user?.type}); @@ -109,8 +111,10 @@ export default function ExamList({user, entities = []}: {user: User, entities: E }); }, [exams, users]); - const filteredExams = useMemo(() => parsedExams.filter(({module}) => modulePermissions[module].view), - [parsedExams, modulePermissions]) + const nonSystemExams = useMemo(() => parsedExams.filter(e => e.createdBy !== "system"), [parsedExams]) + + const filteredExams = useMemo(() => (isAdmin ? parsedExams : nonSystemExams).filter(({module}) => modulePermissions[module].view), + [parsedExams, nonSystemExams, isAdmin, modulePermissions]) const {rows: filteredRows, renderSearch} = useListSearch(searchFields, filteredExams);