@@ -27,8 +27,9 @@ import {styled} from 'styled-components'
2727
2828import { type DialogState , type SetDialogState } from '../hooks/useDialogState'
2929import { getPlaybackPolicy } from '../util/getPlaybackPolicy'
30- import type { MuxInputProps , VideoAssetDocument } from '../util/types'
30+ import type { MuxInputProps , PluginConfig , VideoAssetDocument } from '../util/types'
3131import { FileInputMenuItem } from './FileInputMenuItem'
32+ import { useAccessControl } from '../hooks/useAccessControl'
3233
3334const LockCard = styled ( Card ) `
3435 position: absolute;
@@ -55,12 +56,14 @@ function PlayerActionsMenu(
5556 onSelect : ( files : File [ ] ) => void
5657 dialogState : DialogState
5758 setDialogState : SetDialogState
59+ config : PluginConfig
5860 }
5961) {
6062 const { asset, readOnly, dialogState, setDialogState, onChange, onSelect} = props
6163 const [ open , setOpen ] = useState ( false )
6264 const [ menuElement , setMenuRef ] = useState < HTMLDivElement | null > ( null )
6365 const isSigned = useMemo ( ( ) => getPlaybackPolicy ( asset ) === 'signed' , [ asset ] )
66+ const { hasConfigAccess} = useAccessControl ( props . config )
6467
6568 const onReset = useCallback ( ( ) => onChange ( PatchEvent . from ( unset ( [ ] ) ) ) , [ onChange ] )
6669
@@ -125,12 +128,16 @@ function PlayerActionsMenu(
125128 />
126129 ) }
127130 < MenuDivider />
128- < MenuItem
129- icon = { PlugIcon }
130- text = "Configure API"
131- onClick = { ( ) => setDialogState ( 'secrets' ) }
132- />
133- < MenuDivider />
131+ { hasConfigAccess && (
132+ < >
133+ < MenuItem
134+ icon = { PlugIcon }
135+ text = "Configure API"
136+ onClick = { ( ) => setDialogState ( 'secrets' ) }
137+ />
138+ < MenuDivider />
139+ </ >
140+ ) }
134141 < MenuItem
135142 tone = "critical"
136143 icon = { ResetIcon }
0 commit comments