fix: hide admin settings tabs for members

Co-authored-by: naiba/CloudCode <hi+cloudcode@nai.ba>
This commit is contained in:
naiba
2026-05-16 00:46:15 +08:00
committed by GitHub
co-authored by naiba/CloudCode
parent f4696421ec
commit 2010d80914
3 changed files with 37 additions and 32 deletions
+5
View File
@@ -55,6 +55,7 @@ export default function Header() {
const { t } = useTranslation()
const { logout } = useAuth()
const profile = useMainStore((store) => store.profile)
const isAdmin = profile?.role === 0
const location = useLocation()
const isDesktop = useMediaQuery("(min-width: 890px)")
@@ -142,6 +143,7 @@ export default function Header() {
{t("Profile")}
</div>
</DropdownMenuItem>
{isAdmin && (
<DropdownMenuItem
onClick={() => {
setDropdownOpen(false)
@@ -154,6 +156,7 @@ export default function Header() {
{t("Settings")}
</div>
</DropdownMenuItem>
)}
</DropdownMenuGroup>
<DropdownMenuSeparator />
<DropdownMenuItem
@@ -334,6 +337,7 @@ export default function Header() {
{t("Profile")}
</div>
</DropdownMenuItem>
{isAdmin && (
<DropdownMenuItem
onClick={() => {
setDropdownOpen(false)
@@ -346,6 +350,7 @@ export default function Header() {
{t("Settings")}
</div>
</DropdownMenuItem>
)}
</DropdownMenuGroup>
<DropdownMenuSeparator />
<DropdownMenuItem onClick={logout} className="cursor-pointer">
+2 -2
View File
@@ -20,14 +20,14 @@ export const SettingsTab = ({ className }: { className?: string }) => {
<TabsTrigger value="/dashboard/settings/user" asChild>
<Link to="/dashboard/settings/user">{t("User")}</Link>
</TabsTrigger>
</>
)}
<TabsTrigger value="/dashboard/settings/online-user" asChild>
<Link to="/dashboard/settings/online-user">{t("OnlineUser")}</Link>
</TabsTrigger>
<TabsTrigger value="/dashboard/settings/waf" asChild>
<Link to="/dashboard/settings/waf">{t("WAF")}</Link>
</TabsTrigger>
</>
)}
</TabsList>
</Tabs>
)
+2 -2
View File
@@ -3,6 +3,7 @@ import { SettingsTab } from "@/components/settings-tab"
import { Button } from "@/components/ui/button"
import { Card, CardContent } from "@/components/ui/card"
import { Checkbox } from "@/components/ui/checkbox"
import { Combobox } from "@/components/ui/combobox"
import {
Form,
FormControl,
@@ -21,9 +22,8 @@ import {
SelectValue,
} from "@/components/ui/select"
import { Textarea } from "@/components/ui/textarea"
import { Combobox } from "@/components/ui/combobox"
import { useNotification } from "@/hooks/useNotfication"
import { useAuth } from "@/hooks/useAuth"
import { useNotification } from "@/hooks/useNotfication"
import useSetting from "@/hooks/useSetting"
import { asOptionalField } from "@/lib/utils"
import { nezhaLang, settingCoverageTypes } from "@/types"