| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- const { Router } = require("express");
- const validators = require("../handlers/validators.handler");
- const helpers = require("../handlers/helpers.handler");
- const asyncHandler = require("../utils/asyncHandler");
- const locals = require("../handlers/locals.handler");
- const auth = require("../handlers/auth.handler");
- const utils = require("../utils");
- const env = require("../env");
- const router = Router();
- router.post(
- "/login",
- locals.viewTemplate("partials/auth/form"),
- validators.login,
- asyncHandler(helpers.verify),
- helpers.rateLimit({ window: 60, limit: 5 }),
- asyncHandler(auth.local),
- asyncHandler(auth.login)
- );
- router.post(
- "/signup",
- locals.viewTemplate("partials/auth/form"),
- auth.featureAccess([!env.DISALLOW_REGISTRATION, env.MAIL_ENABLED]),
- validators.signup,
- asyncHandler(helpers.verify),
- helpers.rateLimit({ window: 60, limit: 5 }),
- validators.signupEmailTaken,
- asyncHandler(helpers.verify),
- asyncHandler(auth.signup)
- );
- router.post(
- "/create-admin",
- locals.viewTemplate("partials/auth/form_admin"),
- validators.createAdmin,
- asyncHandler(helpers.verify),
- helpers.rateLimit({ window: 60, limit: 5 }),
- asyncHandler(auth.createAdminUser)
- );
- router.post(
- "/change-password",
- locals.viewTemplate("partials/settings/change_password"),
- asyncHandler(auth.jwt),
- validators.changePassword,
- asyncHandler(helpers.verify),
- helpers.rateLimit({ window: 60, limit: 5 }),
- asyncHandler(auth.changePassword)
- );
- router.post(
- "/change-email",
- locals.viewTemplate("partials/settings/change_email"),
- asyncHandler(auth.jwt),
- auth.featureAccess([env.MAIL_ENABLED]),
- validators.changeEmail,
- asyncHandler(helpers.verify),
- helpers.rateLimit({ window: 60, limit: 3 }),
- asyncHandler(auth.changeEmailRequest)
- );
- router.post(
- "/apikey",
- locals.viewTemplate("partials/settings/apikey"),
- asyncHandler(auth.jwt),
- helpers.rateLimit({ window: 60, limit: 10 }),
- asyncHandler(auth.generateApiKey)
- );
- router.post(
- "/reset-password",
- locals.viewTemplate("partials/reset_password/request_form"),
- auth.featureAccess([env.MAIL_ENABLED]),
- validators.resetPassword,
- asyncHandler(helpers.verify),
- helpers.rateLimit({ window: 60, limit: 3 }),
- asyncHandler(auth.resetPassword)
- );
- router.post(
- "/new-password",
- locals.viewTemplate("partials/reset_password/new_password_form"),
- locals.newPassword,
- validators.newPassword,
- asyncHandler(helpers.verify),
- helpers.rateLimit({ window: 60, limit: 5 }),
- asyncHandler(auth.newPassword)
- );
- module.exports = router;
|