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 && (
+
+ )}