@@ -8,16 +8,18 @@ import { withRouteHandler } from '@/lib/core/utils/with-route-handler'
88import type { RawFileInput } from '@/lib/uploads/utils/file-schemas'
99import { processFilesToUserFiles } from '@/lib/uploads/utils/file-utils'
1010import { downloadFileFromStorage } from '@/lib/uploads/utils/file-utils.server'
11+ import { assertToolFileAccess } from '@/app/api/files/authorization'
1112
1213const logger = createLogger ( 'QuiverTextToSvgAPI' )
1314
1415export const POST = withRouteHandler ( async ( request : NextRequest ) => {
1516 const requestId = generateRequestId ( )
1617
1718 const authResult = await checkInternalAuth ( request , { requireWorkflowId : false } )
18- if ( ! authResult . success ) {
19+ if ( ! authResult . success || ! authResult . userId ) {
1920 return NextResponse . json ( { success : false , error : 'Unauthorized' } , { status : 401 } )
2021 }
22+ const userId = authResult . userId
2123
2224 try {
2325 const parsed = await parseRequest (
@@ -51,6 +53,13 @@ export const POST = withRouteHandler(async (request: NextRequest) => {
5153 if ( parsed && typeof parsed === 'object' ) {
5254 const userFiles = processFilesToUserFiles ( [ parsed as RawFileInput ] , requestId , logger )
5355 if ( userFiles . length > 0 ) {
56+ const denied = await assertToolFileAccess (
57+ userFiles [ 0 ] . key ,
58+ userId ,
59+ requestId ,
60+ logger
61+ )
62+ if ( denied ) return denied
5463 const buffer = await downloadFileFromStorage ( userFiles [ 0 ] , requestId , logger )
5564 apiReferences . push ( { base64 : buffer . toString ( 'base64' ) } )
5665 }
@@ -61,6 +70,8 @@ export const POST = withRouteHandler(async (request: NextRequest) => {
6170 } else if ( typeof ref === 'object' && ref !== null ) {
6271 const userFiles = processFilesToUserFiles ( [ ref as RawFileInput ] , requestId , logger )
6372 if ( userFiles . length > 0 ) {
73+ const denied = await assertToolFileAccess ( userFiles [ 0 ] . key , userId , requestId , logger )
74+ if ( denied ) return denied
6475 const buffer = await downloadFileFromStorage ( userFiles [ 0 ] , requestId , logger )
6576 apiReferences . push ( { base64 : buffer . toString ( 'base64' ) } )
6677 }
0 commit comments