Add traverse access level for folder navigation without file access

When a permission is set on a nested folder, traverse is automatically
granted on all ancestor folders so users can navigate to it. Traverse
only shows subfolders in listings — files are hidden. This prevents
orphaned permissions where a user has access to a nested folder but
can't reach it.

Hierarchy: traverse < view < edit < admin
This commit is contained in:
Ryan Moon
2026-03-29 18:04:24 -05:00
parent 51ca2ca683
commit f998b16a3f
9 changed files with 72 additions and 18 deletions

View File

@@ -28,6 +28,7 @@ interface FolderPermissionsDialogProps {
}
const ACCESS_LEVELS = [
{ value: 'traverse', label: 'Traverse', variant: 'outline' as const },
{ value: 'view', label: 'View', variant: 'secondary' as const },
{ value: 'edit', label: 'Edit', variant: 'default' as const },
{ value: 'admin', label: 'Admin', variant: 'destructive' as const },

View File

@@ -8,7 +8,7 @@ export interface StorageFolder {
createdAt: string
updatedAt: string
breadcrumbs?: { id: string; name: string }[]
accessLevel?: 'view' | 'edit' | 'admin' | null
accessLevel?: 'traverse' | 'view' | 'edit' | 'admin' | null
}
export interface StorageFolderPermission {
@@ -16,7 +16,7 @@ export interface StorageFolderPermission {
folderId: string
roleId: string | null
userId: string | null
accessLevel: 'view' | 'edit' | 'admin'
accessLevel: 'traverse' | 'view' | 'edit' | 'admin'
createdAt: string
}