1const { User } = require("../models");
2
3const isSessionActive = (req, res, next) => {
4 if (req.session.user) {
5 next();
6 } else {
7 let redirectUrl = "/login";
8 redirectUrl += `?next=${encodeURIComponent(req.path)}`;
9 return res.redirect(redirectUrl);
10 }
11};
12
13const addUserMeta = async (req, res, next) => {
14 if (req.session && req.session.user) {
15 const user_meta = await User.findOne({
16 where: {
17 id: req.session.user.id,
18 },
19 attributes: ["role", "username", "email", "id", "avatar"],
20 });
21
22 if (user_meta) {
23 req.session.user.meta = user_meta;
24 }
25 }
26
27 next();
28};
29
30const isAdmin = (req, res, next) => {
31 if (req.session.user.meta && req.session.user.meta.role === "admin") {
32 next();
33 } else {
34 return res.redirect("/");
35 }
36};
37
38module.exports = {
39 isSessionActive,
40 addUserMeta,
41 isAdmin,
42};