aboutsummaryrefslogtreecommitdiff
path: root/src/routes/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/routes/index.js')
-rw-r--r--src/routes/index.js13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/routes/index.js b/src/routes/index.js
index 1141009..8529595 100644
--- a/src/routes/index.js
+++ b/src/routes/index.js
@@ -6,6 +6,7 @@ const geddit = require("../geddit.js");
6const { JWT_KEY } = require("../"); 6const { JWT_KEY } = require("../");
7const { db } = require("../db"); 7const { db } = require("../db");
8const { authenticateToken } = require("../auth"); 8const { authenticateToken } = require("../auth");
9const { validateInviteToken } = require("../invite");
9 10
10const router = express.Router(); 11const router = express.Router();
11const G = new geddit.Geddit(); 12const G = new geddit.Geddit();
@@ -113,11 +114,11 @@ router.get("/media/*", authenticateToken, async (req, res) => {
113 res.render("media", { kind, url }); 114 res.render("media", { kind, url });
114}); 115});
115 116
116router.get("/register", async (req, res) => { 117router.get("/register", validateInviteToken, async (req, res) => {
117 res.render("register"); 118 res.render("register", { isDisabled: false, token: req.query.token });
118}); 119});
119 120
120router.post("/register", async (req, res) => { 121router.post("/register", validateInviteToken, async (req, res) => {
121 const { username, password, confirm_password } = req.body; 122 const { username, password, confirm_password } = req.body;
122 123
123 if (!username || !password || !confirm_password) { 124 if (!username || !password || !confirm_password) {
@@ -141,6 +142,11 @@ router.post("/register", async (req, res) => {
141 142
142 try { 143 try {
143 const hashedPassword = await Bun.password.hash(password); 144 const hashedPassword = await Bun.password.hash(password);
145
146 db.query("UPDATE invites SET usedAt = CURRENT_TIMESTAMP WHERE id = $id", {
147 id: req.invite.id,
148 });
149
144 const insertedRecord = db 150 const insertedRecord = db
145 .query( 151 .query(
146 "INSERT INTO users (username, password_hash) VALUES ($username, $hashedPassword)", 152 "INSERT INTO users (username, password_hash) VALUES ($username, $hashedPassword)",
@@ -159,6 +165,7 @@ router.post("/register", async (req, res) => {
159 }) 165 })
160 .redirect("/"); 166 .redirect("/");
161 } catch (err) { 167 } catch (err) {
168 console.log(err);
162 return res.render("register", { 169 return res.render("register", {
163 message: "error registering user, try again later", 170 message: "error registering user, try again later",
164 }); 171 });