diff --git a/lib/Account.js b/lib/Account.js index 90c16e8..9ef860a 100644 --- a/lib/Account.js +++ b/lib/Account.js @@ -7,7 +7,7 @@ const User = require('./User'); class Account extends User { constructor(conn, id) { - super(conn, 'account', id); + super(conn, id, 'account'); } async getTestTemplates() { diff --git a/lib/Parent.js b/lib/Parent.js index c4ab062..4433a31 100644 --- a/lib/Parent.js +++ b/lib/Parent.js @@ -5,7 +5,7 @@ const User = require('./User'); class Parent extends User { constructor(conn, id) { - super(conn, 'parent', id); + super(conn, id, 'parent'); } get children() { diff --git a/lib/PasswordReset.js b/lib/PasswordReset.js index 906315d..938ec72 100644 --- a/lib/PasswordReset.js +++ b/lib/PasswordReset.js @@ -47,7 +47,7 @@ class PasswordReset { } get user() { - return new (require('./User'))(this.#conn, null, this.userId); + return new (require('./User'))(this.#conn, this.userId); } static async hashToken(u) { @@ -63,7 +63,7 @@ class PasswordReset { } static async generatePasswordReset(conn, userId) { - const u = await new (require('./User'))(conn, null, userId); + const u = await new (require('./User'))(conn, userId); let sql = ` delete from passwordReset diff --git a/lib/Student.js b/lib/Student.js index 0ed9301..ea7a920 100644 --- a/lib/Student.js +++ b/lib/Student.js @@ -5,7 +5,7 @@ const User = require('./User'); class Student extends User { constructor(conn, id) { - super(conn, 'student', id); + super(conn, id, 'student'); } get classes() { diff --git a/lib/User.js b/lib/User.js index a57576e..c7176a0 100644 --- a/lib/User.js +++ b/lib/User.js @@ -24,11 +24,11 @@ class User { #password; - type = null; + type; _conn; - constructor(conn, type, userId) { + constructor(conn, userId, type = null) { type = type ?? false; this._conn = conn; diff --git a/routes/admin.js b/routes/admin.js index 7f65608..700dbc3 100644 --- a/routes/admin.js +++ b/routes/admin.js @@ -13,7 +13,7 @@ router.get('/', (req, res) => { }); router.get('/dashboard', async (req, res) => { - const u = await new User(req.db, null, req.session.userId); + const u = await new User(req.db, req.session.userId); const recentTests = await u.getTests({ range: 'before' }); const upcomingTests = await u.getTests({ range: 'after' }); @@ -52,7 +52,7 @@ router.get('/dashboard', async (req, res) => { router.all(/user\/(.{36})(\/.*)?/, async (req, res, next) => { let u; try { - u = await new User(req.db, null, req.params[0]); + u = await new User(req.db, req.params[0]); } catch (e) { return res.status(400).render('error', { title: 'Stratos - Error', @@ -65,7 +65,6 @@ router.all(/user\/(.{36})(\/.*)?/, async (req, res, next) => { if (!await u.hasAccess(await new User( req.db, - null, req.session.userId ))) return res.redirect('/admin/dashboard'); diff --git a/routes/class.js b/routes/class.js index a00764d..469393b 100644 --- a/routes/class.js +++ b/routes/class.js @@ -11,7 +11,7 @@ const User = require('../lib/User'); const Subject = require('../lib/Subject'); router.get('/classes', async (req, res) => { - const u = await new User(req.db, null, req.session.userId); + const u = await new User(req.db, req.session.userId); return res.render('classes', { title: 'Stratos - Classes', @@ -70,8 +70,8 @@ router.all(/class\/(.{36})(\/.*)?/, async (req, res, next) => { }); } - if (!await c.hasAccess(await new User(req.db, - null, + if (!await c.hasAccess(await new User( + req.db, req.session.userId ))) return res.redirect('/admin/classes'); diff --git a/routes/singleClass.js b/routes/singleClass.js index 9e2b8e9..bdb38ac 100644 --- a/routes/singleClass.js +++ b/routes/singleClass.js @@ -212,7 +212,7 @@ router.post('/:id/members/add2', async (req, res) => { router.get('/:id/:userType(members|teachers)/:userId/remove', async (req, res) => { const c = req.class; - const u = await new User(req.db, null, req.params.userId); + const u = await new User(req.db, req.params.userId); const userType = req.params.userType === 'teachers' ? @@ -237,7 +237,7 @@ router.get('/:id/:userType(members|teachers)/:userId/remove', router.post('/:id/:userType(members|teachers)/:userId/remove', async (req, res) => { const c = req.class; - const u = await new User(req.db, null, req.params.userId); + const u = await new User(req.db, req.params.userId); const userType = req.params.userType; try { diff --git a/routes/test.js b/routes/test.js index ca970b3..5bde049 100644 --- a/routes/test.js +++ b/routes/test.js @@ -10,7 +10,7 @@ const User = require('../lib/User'); const Test = require('../lib/Test'); router.get('/tests', async (req, res) => { - const u = await new User(req.db, null, req.session.userId); + const u = await new User(req.db, req.session.userId); return res.render('tests', { title: 'Stratos - Tests', @@ -128,7 +128,7 @@ router.all(/test\/(.{36})(\/.*)?/, async (req, res, next) => { } if (!await t.hasAccess(await new User( - req.db, null, + req.db, req.session.userId ))) return res.redirect('/admin/tests');