2021-01-21 22:06:52 +01:00
|
|
|
'use strict';
|
2020-11-23 19:24:19 +01:00
|
|
|
const securityManager = require('./db/SecurityManager');
|
2012-02-25 00:15:57 +01:00
|
|
|
|
2019-02-08 23:20:57 +01:00
|
|
|
// checks for padAccess
|
2019-01-23 17:29:36 +01:00
|
|
|
module.exports = async function (req, res) {
|
|
|
|
try {
|
2020-09-11 23:12:29 +02:00
|
|
|
const {session: {user} = {}} = req;
|
|
|
|
const accessObj = await securityManager.checkAccess(
|
2020-10-07 14:43:54 +02:00
|
|
|
req.params.pad, req.cookies.sessionID, req.cookies.token, user);
|
2012-02-25 00:15:57 +01:00
|
|
|
|
2020-11-23 19:24:19 +01:00
|
|
|
if (accessObj.accessStatus === 'grant') {
|
2019-02-08 23:20:57 +01:00
|
|
|
// there is access, continue
|
2019-01-23 17:29:36 +01:00
|
|
|
return true;
|
2012-02-25 00:15:57 +01:00
|
|
|
} else {
|
2019-02-08 23:20:57 +01:00
|
|
|
// no access
|
2015-04-10 21:10:55 +02:00
|
|
|
res.status(403).send("403 - Can't touch this");
|
2019-01-23 17:29:36 +01:00
|
|
|
return false;
|
2012-02-25 00:15:57 +01:00
|
|
|
}
|
2019-01-23 17:29:36 +01:00
|
|
|
} catch (err) {
|
|
|
|
// @TODO - send internal server error here?
|
|
|
|
throw err;
|
|
|
|
}
|
2020-11-23 19:24:19 +01:00
|
|
|
};
|