diff options
Diffstat (limited to 'src/routes/index.js')
-rw-r--r-- | src/routes/index.js | 13 |
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"); | |||
6 | const { JWT_KEY } = require("../"); | 6 | const { JWT_KEY } = require("../"); |
7 | const { db } = require("../db"); | 7 | const { db } = require("../db"); |
8 | const { authenticateToken } = require("../auth"); | 8 | const { authenticateToken } = require("../auth"); |
9 | const { validateInviteToken } = require("../invite"); | ||
9 | 10 | ||
10 | const router = express.Router(); | 11 | const router = express.Router(); |
11 | const G = new geddit.Geddit(); | 12 | const 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 | ||
116 | router.get("/register", async (req, res) => { | 117 | router.get("/register", validateInviteToken, async (req, res) => { |
117 | res.render("register"); | 118 | res.render("register", { isDisabled: false, token: req.query.token }); |
118 | }); | 119 | }); |
119 | 120 | ||
120 | router.post("/register", async (req, res) => { | 121 | router.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 | }); |