feat: RBAC controlling
This commit is contained in:
@@ -4,6 +4,7 @@ import { useCallback, useEffect, useState } from "react";
|
||||
import { Button, Chip, Modal, Pagination, Spinner, Table } from "@heroui/react";
|
||||
import { TrashBin } from "@gravity-ui/icons";
|
||||
import { api, type PaginatedTransactions } from "@/lib/api";
|
||||
import { useSession } from "@/lib/auth-client";
|
||||
|
||||
const LIMIT = 15;
|
||||
|
||||
@@ -18,6 +19,8 @@ function formatDuration(start: string, stop: string | null): string {
|
||||
}
|
||||
|
||||
export default function TransactionsPage() {
|
||||
const { data: sessionData } = useSession();
|
||||
const isAdmin = sessionData?.user?.role === "admin";
|
||||
const [data, setData] = useState<PaginatedTransactions | null>(null);
|
||||
const [page, setPage] = useState(1);
|
||||
const [status, setStatus] = useState<"all" | "active" | "completed">("all");
|
||||
@@ -201,6 +204,7 @@ export default function TransactionsPage() {
|
||||
</Modal.Backdrop>
|
||||
</Modal>
|
||||
)}
|
||||
{isAdmin && (
|
||||
<Modal>
|
||||
<Button
|
||||
isIconOnly
|
||||
@@ -248,6 +252,7 @@ export default function TransactionsPage() {
|
||||
</Modal.Container>
|
||||
</Modal.Backdrop>
|
||||
</Modal>
|
||||
)}
|
||||
</div>
|
||||
</Table.Cell>
|
||||
</Table.Row>
|
||||
|
||||
Reference in New Issue
Block a user