mirror of
https://github.com/henrygd/beszel.git
synced 2026-04-18 02:41:50 +02:00
fix(ui): hide noop add system btn and smart actions for readonly users
This commit is contained in:
@@ -125,15 +125,17 @@ export default function Navbar() {
|
|||||||
<DropdownMenuSubContent>{AdminLinks}</DropdownMenuSubContent>
|
<DropdownMenuSubContent>{AdminLinks}</DropdownMenuSubContent>
|
||||||
</DropdownMenuSub>
|
</DropdownMenuSub>
|
||||||
)}
|
)}
|
||||||
<DropdownMenuItem
|
{!isReadOnlyUser() && (
|
||||||
className="flex items-center"
|
<DropdownMenuItem
|
||||||
onSelect={() => {
|
className="flex items-center"
|
||||||
setAddSystemDialogOpen(true)
|
onSelect={() => {
|
||||||
}}
|
setAddSystemDialogOpen(true)
|
||||||
>
|
}}
|
||||||
<PlusIcon className="h-4 w-4 me-2.5" />
|
>
|
||||||
<Trans>Add {{ foo: systemTranslation }}</Trans>
|
<PlusIcon className="h-4 w-4 me-2.5" />
|
||||||
</DropdownMenuItem>
|
<Trans>Add {{ foo: systemTranslation }}</Trans>
|
||||||
|
</DropdownMenuItem>
|
||||||
|
)}
|
||||||
</DropdownMenuGroup>
|
</DropdownMenuGroup>
|
||||||
<DropdownMenuSeparator />
|
<DropdownMenuSeparator />
|
||||||
<DropdownMenuGroup>
|
<DropdownMenuGroup>
|
||||||
@@ -217,10 +219,12 @@ export default function Navbar() {
|
|||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
</DropdownMenuContent>
|
</DropdownMenuContent>
|
||||||
</DropdownMenu>
|
</DropdownMenu>
|
||||||
<Button variant="outline" className="flex gap-1 ms-2" onClick={() => setAddSystemDialogOpen(true)}>
|
{!isReadOnlyUser() && (
|
||||||
<PlusIcon className="h-4 w-4 -ms-1" />
|
<Button variant="outline" className="flex gap-1 ms-2" onClick={() => setAddSystemDialogOpen(true)}>
|
||||||
<Trans>Add {{ foo: systemTranslation }}</Trans>
|
<PlusIcon className="h-4 w-4 -ms-1" />
|
||||||
</Button>
|
<Trans>Add {{ foo: systemTranslation }}</Trans>
|
||||||
|
</Button>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ import { Input } from "@/components/ui/input"
|
|||||||
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"
|
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"
|
||||||
import { Badge } from "@/components/ui/badge"
|
import { Badge } from "@/components/ui/badge"
|
||||||
import { Button } from "@/components/ui/button"
|
import { Button } from "@/components/ui/button"
|
||||||
import { pb } from "@/lib/api"
|
import { isReadOnlyUser, pb } from "@/lib/api"
|
||||||
import type { SmartDeviceRecord, SmartAttribute } from "@/types"
|
import type { SmartDeviceRecord, SmartAttribute } from "@/types"
|
||||||
import {
|
import {
|
||||||
formatBytes,
|
formatBytes,
|
||||||
@@ -492,7 +492,7 @@ export default function DisksTable({ systemId }: { systemId?: string }) {
|
|||||||
const tableColumns = useMemo(() => {
|
const tableColumns = useMemo(() => {
|
||||||
const columns = createColumns(longestName, longestModel, longestDevice)
|
const columns = createColumns(longestName, longestModel, longestDevice)
|
||||||
const baseColumns = systemId ? columns.filter((col) => col.id !== "system") : columns
|
const baseColumns = systemId ? columns.filter((col) => col.id !== "system") : columns
|
||||||
return [...baseColumns, actionColumn]
|
return isReadOnlyUser() ? baseColumns : [...baseColumns, actionColumn]
|
||||||
}, [systemId, actionColumn, longestName, longestModel, longestDevice])
|
}, [systemId, actionColumn, longestName, longestModel, longestDevice])
|
||||||
|
|
||||||
const table = useReactTable({
|
const table = useReactTable({
|
||||||
|
|||||||
Reference in New Issue
Block a user