From df416110933655bd94141a59a59461f8a1c8c60f Mon Sep 17 00:00:00 2001 From: Tiago Ribeiro Date: Tue, 5 Nov 2024 09:50:13 +0000 Subject: [PATCH] ENCOA-219: Hide System exams from non-admin users --- src/pages/(admin)/Lists/ExamList.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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);