Skip to content

Commit bdcc42e

Browse files
authored
fix(permissions): add client-side hints to prevent read-only users from creating workflows or folders (#2390)
1 parent a45bb1b commit bdcc42e

File tree

1 file changed

+5
-3
lines changed
  • apps/sim/app/workspace/[workspaceId]/w/components/sidebar

1 file changed

+5
-3
lines changed

apps/sim/app/workspace/[workspaceId]/w/components/sidebar/sidebar.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { useSession } from '@/lib/auth/auth-client'
99
import { getEnv, isTruthy } from '@/lib/core/config/env'
1010
import { createLogger } from '@/lib/logs/console/logger'
1111
import { useRegisterGlobalCommands } from '@/app/workspace/[workspaceId]/providers/global-commands-provider'
12+
import { useUserPermissionsContext } from '@/app/workspace/[workspaceId]/providers/workspace-permissions-provider'
1213
import { createCommands } from '@/app/workspace/[workspaceId]/utils/commands-utils'
1314
import {
1415
HelpModal,
@@ -65,6 +66,7 @@ export function Sidebar() {
6566
const scrollContainerRef = useRef<HTMLDivElement>(null)
6667

6768
const { data: sessionData, isPending: sessionLoading } = useSession()
69+
const { canEdit } = useUserPermissionsContext()
6870

6971
/**
7072
* Sidebar state from store with hydration tracking to prevent SSR mismatch.
@@ -516,7 +518,7 @@ export function Sidebar() {
516518
variant='ghost'
517519
className='translate-y-[-0.25px] p-[1px]'
518520
onClick={handleImportWorkflow}
519-
disabled={isImporting}
521+
disabled={isImporting || !canEdit}
520522
>
521523
<ArrowDown className='h-[14px] w-[14px]' />
522524
</Button>
@@ -531,7 +533,7 @@ export function Sidebar() {
531533
variant='ghost'
532534
className='mr-[1px] translate-y-[-0.25px] p-[1px]'
533535
onClick={handleCreateFolder}
534-
disabled={isCreatingFolder}
536+
disabled={isCreatingFolder || !canEdit}
535537
>
536538
<FolderPlus className='h-[14px] w-[14px]' />
537539
</Button>
@@ -546,7 +548,7 @@ export function Sidebar() {
546548
variant='outline'
547549
className='translate-y-[-0.25px] p-[1px]'
548550
onClick={handleCreateWorkflow}
549-
disabled={isCreatingWorkflow}
551+
disabled={isCreatingWorkflow || !canEdit}
550552
>
551553
<Plus className='h-[14px] w-[14px]' />
552554
</Button>

0 commit comments

Comments
 (0)