26 lines
892 B
TypeScript
26 lines
892 B
TypeScript
|
import { CANNED_RESPONSES } from '../../../../utils/canned_responses.ts';
|
||
|
import { get_session, get_user, PRECHECK_TABLE, require_user } from '../../../../utils/prechecks.ts';
|
||
|
|
||
|
export const PERMISSIONS: Record<string, (req: Request, meta: Record<string, any>) => Promise<boolean>> = {};
|
||
|
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 => {
|
||
|
const can_read_self = meta.user_permissions?.permissions.includes('self.read');
|
||
|
|
||
|
const has_permission = can_read_self;
|
||
|
console.dir({
|
||
|
meta,
|
||
|
can_read_self,
|
||
|
has_permission
|
||
|
});
|
||
|
if (!has_permission) {
|
||
|
return CANNED_RESPONSES.permission_denied();
|
||
|
}
|
||
|
}];
|
||
|
export function GET(_req: Request, meta: Record<string, any>): Response {
|
||
|
return Response.json(meta.user, {
|
||
|
status: 200
|
||
|
});
|
||
|
}
|