diff --git a/src/app/dashboard/server/[id]/page.tsx b/src/app/dashboard/server/[id]/page.tsx index ef08731..b09291e 100755 --- a/src/app/dashboard/server/[id]/page.tsx +++ b/src/app/dashboard/server/[id]/page.tsx @@ -35,6 +35,7 @@ export default async function ServerPage({ params }: ServerPageProps) { configurations={configurations} statistics={statistics} leaderboard={leaderboard} + user={session.user!} /> ); diff --git a/src/components/server/ServerConfigurationTabs.tsx b/src/components/server/ServerConfigurationTabs.tsx index 3ac9f8f..c01b839 100755 --- a/src/components/server/ServerConfigurationTabs.tsx +++ b/src/components/server/ServerConfigurationTabs.tsx @@ -13,7 +13,7 @@ import { ServerLogViewer } from '@/components/server/ServerLogViewer'; import { PresetPickerModal } from '@/components/server/PresetPickerModal'; import { SavePresetModal } from '@/components/server/SavePresetModal'; import { useState } from 'react'; -import { StateHistoryStats } from '@/lib/schemas'; +import { StateHistoryStats, hasPermission, type User } from '@/lib/schemas'; import { Leaderboard } from '@/lib/schemas/leaderboard'; import { bulkUpdateConfigurationsAction, @@ -25,6 +25,7 @@ interface ServerConfigurationTabsProps { configurations: Configurations; statistics: StateHistoryStats; leaderboard: Leaderboard; + user: User; } const tabs = [ { id: ServerTab.statistics, name: 'Statistics', icon: '📊' }, @@ -50,8 +51,11 @@ export function ServerConfigurationTabs({ serverId, configurations, statistics, - leaderboard + leaderboard, + user }: ServerConfigurationTabsProps) { + const canViewPresets = hasPermission(user, 'preset.view'); + const canCreatePresets = hasPermission(user, 'preset.create'); const [currentTab, setCurrentTab] = useState(ServerTab.statistics); const [configData, setConfigData] = useState(configurations.configuration); @@ -243,20 +247,24 @@ export function ServerConfigurationTabs({ /> Restart after saving - - + {canCreatePresets && ( + + )} + {canViewPresets && ( + + )}