mirror of
https://github.com/matt-fidd/stratos.git
synced 2026-01-01 23:19:29 +00:00
Added parent login routes
This commit is contained in:
@@ -5,13 +5,58 @@ const express = require('express');
|
|||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
|
|
||||||
// Import user defined modules
|
// Import user defined modules
|
||||||
|
const Parent = require('../lib/Parent');
|
||||||
const User = require('../lib/User');
|
const User = require('../lib/User');
|
||||||
|
|
||||||
|
const validator = require('../lib/validator');
|
||||||
|
|
||||||
// Redirect /admin to /admin/dashboard
|
// Redirect /admin to /admin/dashboard
|
||||||
router.get('/', (req, res) => {
|
router.get('/', (req, res) => {
|
||||||
return res.redirect('/admin/dashboard');
|
return res.redirect('/admin/dashboard');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
router.get('/parent-login', async (req, res) => {
|
||||||
|
if (req.session.userType !== 'parent')
|
||||||
|
return res.redirect('/admin');
|
||||||
|
|
||||||
|
const p = await new Parent(req.db, req.session.userId, 'parent');
|
||||||
|
const children = await p.getChildren();
|
||||||
|
|
||||||
|
res.render('parentLogin', {
|
||||||
|
...req.hbsContext,
|
||||||
|
children: children.map(c => ({ id: c.id, name: c.fullName }))
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
router.post('/parent-login', async (req, res) => {
|
||||||
|
if (req.session.userType !== 'parent')
|
||||||
|
return res.redirect('/admin');
|
||||||
|
|
||||||
|
const p = await new Parent(req.db, req.session.userId, 'parent');
|
||||||
|
|
||||||
|
let fields;
|
||||||
|
try {
|
||||||
|
fields = validator.validate(req.body,
|
||||||
|
[
|
||||||
|
'child'
|
||||||
|
],
|
||||||
|
{
|
||||||
|
values: {
|
||||||
|
child: await p.getChildren(false)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
).fields;
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e);
|
||||||
|
return res.redirect('/admin/parent-login');
|
||||||
|
}
|
||||||
|
|
||||||
|
const s = await new User(req.db, fields.get('child'), 'student');
|
||||||
|
s.login(req);
|
||||||
|
|
||||||
|
res.redirect('/admin');
|
||||||
|
});
|
||||||
|
|
||||||
router.get('/dashboard', async (req, res) => {
|
router.get('/dashboard', async (req, res) => {
|
||||||
const u = await new User(req.db, req.session.userId);
|
const u = await new User(req.db, req.session.userId);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user