ENCOA-219: Hide System exams from non-admin users
This commit is contained in:
@@ -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<Exam>();
|
||||
|
||||
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<Exam>(searchFields, filteredExams);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user