| 
									
										
										
										
											2025-06-27 17:54:04 -07:00
										 |  |  | import * as CANNED_RESPONSES from '../../../../utils/canned_responses.ts'; | 
					
						
							| 
									
										
										
										
											2025-06-25 20:51:29 -07:00
										 |  |  | import { get_session, get_user, PRECHECK_TABLE, require_user } from '../../../../utils/prechecks.ts'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export const PRECHECKS: PRECHECK_TABLE = {}; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // GET /api/users/me - Get the current user
 | 
					
						
							|  |  |  | PRECHECKS.GET = [get_session, get_user, require_user, (_req: Request, meta: Record<string, any>): Response | undefined => { | 
					
						
							| 
									
										
										
										
											2025-07-01 15:37:35 -07:00
										 |  |  | 	const can_read_self = meta.user.permissions.includes('self.read'); | 
					
						
							| 
									
										
										
										
											2025-06-25 20:51:29 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-27 17:54:04 -07:00
										 |  |  | 	if (!can_read_self) { | 
					
						
							| 
									
										
										
										
											2025-06-25 20:51:29 -07:00
										 |  |  | 		return CANNED_RESPONSES.permission_denied(); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | }]; | 
					
						
							|  |  |  | export function GET(_req: Request, meta: Record<string, any>): Response { | 
					
						
							|  |  |  | 	return Response.json(meta.user, { | 
					
						
							|  |  |  | 		status: 200 | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | } |