* Added direct join functionality * Completed CreateUser test suite * Removed non-essential imports * Reordered test functions * Login test suite completed * Completed Logout test suite * Completed RequestReset test suite * Completed ResetPassword test suite * Completed UpdateUserDetails test suite * Completed SetAudio test suite * Fixed UpdateUserDetials suite * GetUserDetails test suite complete * Completed ResetPassword test suite * Completed GetMemberOrgs test suite * Completed GetOwnedOrgs test suite * AddOrgMember test suite added * Created CreateOrg test suite * Modified AddOrgMember suite * Delete Org test suite completed * Completed GetOrg test suite * Completed RemoveOrgMember test suite * Completed UpdateOrgDetails test suite * Changed oackage,json files * Switched project over to workspaces * Test build script completed * Fixed config.json missing on workflow run * Completed test-build.js.yml * Completed test-build.js.yml * Completed test-build.js.yml * Test build completed * Completed test-build.js.yml * Added touch server * Touched test-build.js.yml * Reworked workflows and automated test suite (#7) Reworked workflows and automated test suite (#7) * Configured new js file and isolated database files in db folder (#10) * Changed config.js and isolated db * Configured new js file and isolated database files in db folder * Removed .env files from config (#11)
53 lines
1.4 KiB
JavaScript
53 lines
1.4 KiB
JavaScript
const { User } = require('../db/models/index');
|
|
|
|
async function checkKnownUser(req, res, next) {
|
|
const user = req.user;
|
|
const userID = req.params.userID || req.query.userID || req.body.userID;
|
|
|
|
if (user.userID == userID) {
|
|
return next();
|
|
}
|
|
|
|
const result = await User.findByPk(userID, {
|
|
include: [
|
|
{
|
|
association: 'ownedOrg',
|
|
include: {
|
|
association: 'orgMember',
|
|
where: { userID: user.userID },
|
|
},
|
|
},
|
|
{
|
|
association: 'memberOrgs',
|
|
include: [
|
|
{
|
|
association: 'orgMember',
|
|
where: { userID: user.userID },
|
|
required: false,
|
|
},
|
|
{
|
|
association: 'orgOwner',
|
|
where: { userID: user.userID },
|
|
required: false,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
});
|
|
|
|
if (!result) {
|
|
return res.status(500).send('No user with that ID exists.');
|
|
}
|
|
|
|
const filteredResult = result.memberOrgs.filter(
|
|
(org) => org.orgMembers.length != 0 || org_owner
|
|
);
|
|
|
|
if (filteredResult.length == 0 && result.ownedOrg) {
|
|
return res.status(403).send('You do not have contact with this user.');
|
|
}
|
|
|
|
return next();
|
|
}
|
|
|
|
module.exports = checkKnownUser;
|