fix empty admin role check

This commit is contained in:
NlightN22 2024-05-22 14:32:03 +07:00
parent 83d5c3424c
commit 46342eaca1
3 changed files with 14 additions and 4 deletions

View File

@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1 # syntax=docker/dockerfile:1
# Build commands: # Build commands:
# - $VERSION=1.3 # - $VERSION=1.4
# - rm build -r -Force ; rm ./node_modules/.cache/babel-loader -r -Force ; yarn build # - rm build -r -Force ; rm ./node_modules/.cache/babel-loader -r -Force ; yarn build
# - docker build --pull --rm -t oncharterliz/multi-frigate:latest -t oncharterliz/multi-frigate:$VERSION "." # - docker build --pull --rm -t oncharterliz/multi-frigate:latest -t oncharterliz/multi-frigate:$VERSION "."
# - docker image push --all-tags oncharterliz/multi-frigate # - docker image push --all-tags oncharterliz/multi-frigate

View File

@ -1,6 +1,6 @@
{ {
"name": "multi-frigate", "name": "multi-frigate",
"version": "0.1.3", "version": "0.1.4",
"private": true, "private": true,
"dependencies": { "dependencies": {
"@cycjimmy/jsmpeg-player": "^6.0.5", "@cycjimmy/jsmpeg-player": "^6.0.5",

View File

@ -2,6 +2,8 @@ import { useQuery } from "@tanstack/react-query";
import { frigateQueryKeys, frigateApi } from "../services/frigate.proxy/frigate.api"; import { frigateQueryKeys, frigateApi } from "../services/frigate.proxy/frigate.api";
import { useRealmAccessRoles } from "./useRealmAccessRoles"; import { useRealmAccessRoles } from "./useRealmAccessRoles";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import { isProduction } from "../shared/env.const";
import { getConfigSchema } from "../services/frigate.proxy/frigate.schema";
export interface AdminRole { export interface AdminRole {
isLoading: boolean isLoading: boolean
@ -19,9 +21,17 @@ export const useAdminRole = (): AdminRole => {
const roles = useRealmAccessRoles() const roles = useRealmAccessRoles()
const [isAdmin, setIsAdmin] = useState(false) const [isAdmin, setIsAdmin] = useState(false)
if (isError) setIsAdmin(false)
useEffect(() => { useEffect(() => {
if (adminConfig) { const parsedConfig = getConfigSchema.safeParse(adminConfig)
const checkAdmin = roles.some(role => role === adminConfig.value) if (!isProduction) console.log('useAdminRole parsedConfig success:', parsedConfig.success)
if (!parsedConfig.success) {
setIsAdmin(true)
return
}
if (parsedConfig.success) {
const checkAdmin = roles.some(role => role === parsedConfig.data.value)
setIsAdmin(checkAdmin) setIsAdmin(checkAdmin)
} else { } else {
setIsAdmin(false) setIsAdmin(false)