Skip to content

Commit 8acd140

Browse files
committed
Add user role check for action column
1 parent 5116eda commit 8acd140

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

frontend/src/app/dashboard/_components/QuestionTable/data-table.tsx

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,15 @@ import {
2121
TableRow,
2222
} from "@/components/ui/table";
2323

24-
import { useState } from "react";
24+
import { useMemo, useState } from "react";
2525

2626
import { DataTablePagination } from "./data-table-pagination";
2727

2828
import DataTableToolbar from "./data-table-toolbar";
2929

3030
import { Card } from "@/components/ui/card";
3131
import { QuestionTableProvider } from "@/contexts/QuestionTableContext";
32+
import { useUser } from "@/contexts/UserContext";
3233

3334
interface DataTableProps<TData, TValue> {
3435
columns: ColumnDef<TData, TValue>[];
@@ -40,12 +41,22 @@ export function DataTable<TData, TValue>({
4041
columns,
4142
data,
4243
}: DataTableProps<TData, TValue>) {
44+
const user = useUser();
45+
46+
const isAdmin = useMemo(() => {
47+
return user?.roles.includes("admin");
48+
}, [user]);
49+
50+
const filteredColumns = isAdmin
51+
? columns
52+
: columns.filter((column) => column.id !== "Action");
53+
4354
const [sorting, setSorting] = useState<SortingState>([]);
4455
const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);
4556

4657
const table = useReactTable({
4758
data,
48-
columns,
59+
columns: filteredColumns,
4960
getCoreRowModel: getCoreRowModel(),
5061
getPaginationRowModel: getPaginationRowModel(),
5162
onSortingChange: setSorting,

0 commit comments

Comments
 (0)