@@ -47,13 +47,10 @@ export function setupSessionEndpoints(ctx: SessionEndpointsContext, server: IHtt
4747 method : 'POST' ,
4848 path : `/agent/get-session-info` ,
4949 handler : async ( { body, adminUser, response } ) => {
50- const parsedBody = sessionIdBodySchema . safeParse ( body ) ;
51- if ( ! parsedBody . success ) {
52- response . setStatus ( 422 , parsedBody . error . message ) ;
53- return ;
54- }
50+ const data = ctx . parseBody ( sessionIdBodySchema , body , response ) ;
51+ if ( ! data ) return ;
5552 const userId = adminUser ! . pk ;
56- const sessionId = parsedBody . data . sessionId ;
53+ const sessionId = data . sessionId ;
5754 const session = await ctx . adminforth . resource ( ctx . options . sessionResource . resourceId ) . get (
5855 [ Filters . EQ ( ctx . options . sessionResource . idField , sessionId ) ]
5956 ) ;
@@ -108,11 +105,11 @@ export function setupSessionEndpoints(ctx: SessionEndpointsContext, server: IHtt
108105 [ ctx . options . sessionResource . titleField ] : title ,
109106 [ ctx . options . sessionResource . askerIdField ] : userId ,
110107 } ;
111- await ctx . adminforth . resource ( ctx . options . sessionResource . resourceId ) . create ( newSession ) ;
108+ const { createdRecord } = await ctx . adminforth . resource ( ctx . options . sessionResource . resourceId ) . create ( newSession ) ;
112109 return {
113- sessionId : newSession [ ctx . options . sessionResource . idField ] ,
114- title : newSession [ ctx . options . sessionResource . titleField ] ,
115- timestamp : newSession [ ctx . options . sessionResource . createdAtField ] ,
110+ sessionId : createdRecord [ ctx . options . sessionResource . idField ] ,
111+ title : createdRecord [ ctx . options . sessionResource . titleField ] ,
112+ timestamp : createdRecord [ ctx . options . sessionResource . createdAtField ] ,
116113 messages : [ ]
117114 } ;
118115 }
@@ -155,9 +152,22 @@ export function setupSessionEndpoints(ctx: SessionEndpointsContext, server: IHtt
155152 server . endpoint ( {
156153 method : 'POST' ,
157154 path : `/agent/add-system-message-to-turns` ,
158- handler : async ( { body, response } ) => {
155+ handler : async ( { body, adminUser , response } ) => {
159156 const data = ctx . parseBody ( addSystemMessageBodySchema , body , response ) ;
160157 if ( ! data ) return ;
158+ const session = await ctx . adminforth . resource ( ctx . options . sessionResource . resourceId ) . get (
159+ [ Filters . EQ ( ctx . options . sessionResource . idField , data . sessionId ) ]
160+ ) ;
161+ if ( ! session ) {
162+ return {
163+ error : 'Session not found'
164+ } ;
165+ }
166+ if ( session [ ctx . options . sessionResource . askerIdField ] !== adminUser ! . pk ) {
167+ return {
168+ error : 'Unauthorized'
169+ } ;
170+ }
161171 await ctx . createNewTurn ( data . sessionId , data . systemMessage ) ;
162172 return {
163173 ok : true
0 commit comments