diff --git a/apps/web/src/app/App.tsx b/apps/web/src/app/App.tsx index 6770b4382a4570a5cd68d91ed424e31618e8ea80..dfa03165b2a92ddd650cb1ea2ed34f1b482ef7fd 100644 --- a/apps/web/src/app/App.tsx +++ b/apps/web/src/app/App.tsx @@ -141,7 +141,7 @@ export function App(props: App) { </div> <FrozenOverlay> {!auth.authentication?.authenticated && <span>Not Authenticated</span>} - {!auth.authorization.savestate.W && !session.currentSaveState && ( + {!auth.authorization.savestate?.W && !session.currentSaveState && ( <span>Viewer account not authorized. Please load a shared exploration.</span> )} </FrozenOverlay> diff --git a/apps/web/src/components/navbar/navbar.tsx b/apps/web/src/components/navbar/navbar.tsx index a93578f0ed8b38acae8cacddf9ded49835030b80..046b545d4bc52154ac5e98a0a769294d334f1920 100644 --- a/apps/web/src/components/navbar/navbar.tsx +++ b/apps/web/src/components/navbar/navbar.tsx @@ -75,7 +75,7 @@ export const Navbar = () => { /> </FeatureEnabled> <FeatureEnabled featureFlag="VIEWER_PERMISSIONS"> - {authCache.authorization?.savestate?.W && authorization.database.W && ( + {authCache.authorization?.savestate?.W && authorization.database?.W && ( <DropdownItem value="Viewer Permissions" onClick={() => { diff --git a/libs/shared/lib/data-access/store/sessionSlice.ts b/libs/shared/lib/data-access/store/sessionSlice.ts index 650e0e62982ddeb9d4b55bf20b91893e1f8fabfa..b1d84da89cfa6832c149d4d3426169ca4daf891f 100644 --- a/libs/shared/lib/data-access/store/sessionSlice.ts +++ b/libs/shared/lib/data-access/store/sessionSlice.ts @@ -27,6 +27,13 @@ const defaultStateAuthorizationHeaders: SaveStateAuthorizationHeaders = { schema: { W: false, R: false }, }; +const newStateAuthorizationHeaders: SaveStateAuthorizationHeaders = { + query: { W: true, R: true }, + database: { W: true, R: true }, + visualization: { W: true, R: true }, + schema: { W: true, R: true }, +}; + // Define the initial state using that type export const initialState: SessionCacheI = { currentSaveState: undefined, @@ -91,7 +98,7 @@ export const sessionSlice = createSlice({ state.saveStates[action.payload.id] = action.payload; state.currentSaveState = action.payload.id; if (!state.saveStatesAuthorization[action.payload.id]) { - state.saveStatesAuthorization[action.payload.id] = cloneDeep(defaultStateAuthorizationHeaders); + state.saveStatesAuthorization[action.payload.id] = cloneDeep(newStateAuthorizationHeaders); } }, deleteSaveState: (state: SessionCacheI, action: PayloadAction<string>) => { diff --git a/libs/shared/lib/vis/components/VisualizationTabBar.tsx b/libs/shared/lib/vis/components/VisualizationTabBar.tsx index 0cd76eaa1ab09cae595cfb7a08946bfdbf8da799..cbb83bf886703750e5468e309eefee551e0a8a04 100644 --- a/libs/shared/lib/vis/components/VisualizationTabBar.tsx +++ b/libs/shared/lib/vis/components/VisualizationTabBar.tsx @@ -75,7 +75,7 @@ export default function VisualizationTabBar(props: { fullSize: () => void; expor <Button variantType="secondary" variant="ghost" - disabled={!saveStateAuthorization.database.W} + disabled={!saveStateAuthorization.database?.W} rounded size="2xs" iconComponent="icon-[ic--baseline-close]" @@ -93,7 +93,7 @@ export default function VisualizationTabBar(props: { fullSize: () => void; expor <Tooltip> <TooltipTrigger> <DropdownContainer open={open} onOpenChange={setOpen}> - <DropdownTrigger disabled={!saveStateAuthorization.database.W} onClick={() => setOpen((v) => !v)}> + <DropdownTrigger disabled={!saveStateAuthorization.database?.W} onClick={() => setOpen((v) => !v)}> <Button as={'a'} variantType="secondary"