panel.js 659 B

123456789101112131415161718192021
  1. import { Elysia } from 'elysia'
  2. import { Eta } from "eta"
  3. const eta = new Eta({ views: "./templates" })
  4. import Auth from '../../utils/auth';
  5. export default (langName, lang) => new Elysia({ prefix: "/panel" })
  6. .get("/", async ({ cookie, redirect, set }) => {
  7. const token = cookie.session.value
  8. const session = await Auth.getSession(token)
  9. if (!session) {
  10. return redirect(`/${langName === "sk" ? `` : `${langName}/`}auth?error=${lang.auth.errors.loginNeeded}`)
  11. }
  12. const user = Auth.getUser(session.email)
  13. set.headers['content-type'] = 'text/html; charset=utf8'
  14. return eta.render(`${langName}/panel/index`, { user })
  15. })