MCPcopy Index your code
hub / github.com/simstudioai/sim / validateWorkspaceAccess

Function validateWorkspaceAccess

apps/sim/app/api/v1/middleware.ts:200–214  ·  view source on GitHub ↗
(
  rateLimit: RateLimitResult,
  userId: string,
  workspaceId: string,
  level: PermissionType = 'read'
)

Source from the content-addressed store, hash-verified

198 * Returns null on success, NextResponse on failure.
199 */
200export async function validateWorkspaceAccess(
201 rateLimit: RateLimitResult,
202 userId: string,
203 workspaceId: string,
204 level: PermissionType = 'read'
205): Promise<NextResponse | null> {
206 const scopeError = await checkWorkspaceScope(rateLimit, workspaceId)
207 if (scopeError) return scopeError
208
209 const permission = await getUserEntityPermissions(userId, 'workspace', workspaceId)
210 if (!permissionSatisfies(permission, level)) {
211 return NextResponse.json({ error: 'Access denied' }, { status: 403 })
212 }
213 return null
214}

Callers 12

route.tsFile · 0.90
route.tsFile · 0.90
route.tsFile · 0.90
route.tsFile · 0.90
route.tsFile · 0.90
route.tsFile · 0.90
route.tsFile · 0.90
route.tsFile · 0.90
resolveKnowledgeBaseFunction · 0.90
route.tsFile · 0.90
route.tsFile · 0.90

Calls 3

getUserEntityPermissionsFunction · 0.90
checkWorkspaceScopeFunction · 0.85
permissionSatisfiesFunction · 0.85

Tested by

no test coverage detected