Initial commit
This commit is contained in:
commit
24f0a28a3c
25 changed files with 3190 additions and 0 deletions
53
routes/gateway.js
Normal file
53
routes/gateway.js
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
import { DBAccess } from '../db/index.js';
|
||||
import { Router } from 'express';
|
||||
const router = Router();
|
||||
|
||||
router.get('/', async function (req, res, next) {
|
||||
if (req.session.userid) {
|
||||
res.redirect("/");
|
||||
} else {
|
||||
res.render("gateway/index", { title: "Гейтвей" });
|
||||
}
|
||||
});
|
||||
|
||||
router.get("/logout", async function (req, res, next) {
|
||||
req.session.destroy(e => e && console.error(e));
|
||||
res.redirect("/");
|
||||
});
|
||||
|
||||
router.post("/login", async function (req, res, next) {
|
||||
const { login, password } = req.body;
|
||||
const voter = await DBAccess.validateVoter(login, password);
|
||||
console.dir(voter);
|
||||
if (voter) {
|
||||
req.session.userid = voter.id;
|
||||
req.session.login = voter.login;
|
||||
req.session.isAdmin = voter.is_admin;
|
||||
req.session.vgroup_id = voter.vgroup_id;
|
||||
req.session.full_name = voter.full_name;
|
||||
res.redirect("/");
|
||||
} else {
|
||||
res.render("gateway/index", { title: "Гейтвей", flashes: ["Неверный логин или пароль"] });
|
||||
}
|
||||
});
|
||||
|
||||
router.post("/register", async function (req, res, next) {
|
||||
const { login, password, full_name } = req.body;
|
||||
if (!login || !password || !full_name || login.length < 5 || password.length < 4 || full_name.length < 4) {
|
||||
res.render("gateway/index", { title: "Гейтвей", flashes: ["Проверьте данные"] });
|
||||
} else if (await DBAccess.findVoterByLogin(login)) {
|
||||
res.render("gateway/index", { title: "Гейтвей", flashes: ["Пользователь с таким логином уже существует"] });
|
||||
} else {
|
||||
const firstUser = await DBAccess.countVoters() === 0;
|
||||
const voter = await DBAccess.createVoter(login, password, full_name, firstUser);
|
||||
console.dir(voter);
|
||||
req.session.userid = voter.id;
|
||||
req.session.login = voter.login;
|
||||
req.session.isAdmin = voter.is_admin;
|
||||
req.session.vgroup_id = voter.vgroup_id;
|
||||
req.session.full_name = voter.full_name;
|
||||
res.redirect("/");
|
||||
}
|
||||
});
|
||||
|
||||
export default router;
|
||||
Loading…
Add table
Add a link
Reference in a new issue