refactor: show nodes tab to any user with docker.read

This commit is contained in:
Mauricio Siu
2026-08-11 02:02:24 -06:00
parent c6c259f926
commit c76c5b2f90
+5 -16
View File
@@ -23,22 +23,15 @@ const DEFAULT_SWARM_TAB = "overview";
const Dashboard = () => { const Dashboard = () => {
const router = useRouter(); const router = useRouter();
const { data: isCloud } = api.settings.isCloud.useQuery(); const { data: isCloud } = api.settings.isCloud.useQuery();
const { data: permissions } = api.user.getPermissions.useQuery();
const canManageCluster = !!permissions?.organization.update;
const queryTab = const queryTab =
typeof router.query.tab === "string" ? router.query.tab : DEFAULT_TAB; typeof router.query.tab === "string" ? router.query.tab : DEFAULT_TAB;
const activeTab = isCloud && queryTab === "networks" ? DEFAULT_TAB : queryTab; const activeTab = isCloud && queryTab === "networks" ? DEFAULT_TAB : queryTab;
const querySwarmTab = const activeSwarmTab =
typeof router.query.subtab === "string" typeof router.query.subtab === "string"
? router.query.subtab ? router.query.subtab
: DEFAULT_SWARM_TAB; : DEFAULT_SWARM_TAB;
const activeSwarmTab =
!canManageCluster && querySwarmTab === "nodes"
? DEFAULT_SWARM_TAB
: querySwarmTab;
const setTab = (value: string) => { const setTab = (value: string) => {
const { tab: _current, subtab: _subtab, ...query } = router.query; const { tab: _current, subtab: _subtab, ...query } = router.query;
@@ -83,9 +76,7 @@ const Dashboard = () => {
<TabsList> <TabsList>
<TabsTrigger value="overview">Overview</TabsTrigger> <TabsTrigger value="overview">Overview</TabsTrigger>
<TabsTrigger value="containers">Containers</TabsTrigger> <TabsTrigger value="containers">Containers</TabsTrigger>
{canManageCluster && ( <TabsTrigger value="nodes">Nodes</TabsTrigger>
<TabsTrigger value="nodes">Nodes</TabsTrigger>
)}
</TabsList> </TabsList>
<TabsContent value="overview"> <TabsContent value="overview">
<SwarmMonitorCard serverId={serverId} /> <SwarmMonitorCard serverId={serverId} />
@@ -97,11 +88,9 @@ const Dashboard = () => {
</div> </div>
</Card> </Card>
</TabsContent> </TabsContent>
{canManageCluster && ( <TabsContent value="nodes">
<TabsContent value="nodes"> <ShowNodes serverId={serverId} />
<ShowNodes serverId={serverId} /> </TabsContent>
</TabsContent>
)}
</Tabs> </Tabs>
</TabsContent> </TabsContent>
<TabsContent value="volumes"> <TabsContent value="volumes">