don't allow going home unless profile details are complete
This commit is contained in:
parent
c38feef86f
commit
f57a20a3a3
3 changed files with 26 additions and 23 deletions
12
src/middlewares/redirectIfMissingProfileDetailsMiddleware.js
Normal file
12
src/middlewares/redirectIfMissingProfileDetailsMiddleware.js
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
const profileService = require('../services/profileService');
|
||||||
|
|
||||||
|
async function redirectIfMissingProfileDetailsMiddleware(req, res, next) {
|
||||||
|
const publicKey = req.cookies.publicKey;
|
||||||
|
if (!(await profileService.areProfileDetailsComplete(publicKey))) {
|
||||||
|
res.redirect('/createProfile');
|
||||||
|
}
|
||||||
|
|
||||||
|
next();
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = redirectIfMissingProfileDetailsMiddleware;
|
||||||
|
|
@ -4,6 +4,7 @@ const router = express.Router();
|
||||||
const redirectIfNotAuthorizedMiddleware = require('../middlewares/redirectIfNotAuthorizedMiddleware');
|
const redirectIfNotAuthorizedMiddleware = require('../middlewares/redirectIfNotAuthorizedMiddleware');
|
||||||
const invitesService = require('../services/invitesService');
|
const invitesService = require('../services/invitesService');
|
||||||
const attachPublicKeyMiddleware = require('../middlewares/attachPublicKeyMiddleware');
|
const attachPublicKeyMiddleware = require('../middlewares/attachPublicKeyMiddleware');
|
||||||
|
const redirectIfMissingProfileDetailsMiddleware = require('../middlewares/redirectIfMissingProfileDetailsMiddleware');
|
||||||
|
|
||||||
router.get('/', (req, res) => {
|
router.get('/', (req, res) => {
|
||||||
res.render('index', { uuid: req.cookies.sessionUuid });
|
res.render('index', { uuid: req.cookies.sessionUuid });
|
||||||
|
|
@ -32,29 +33,6 @@ router.get('/invite/:inviteUuid', async (req, res) => {
|
||||||
return res.render('invite', { invite });
|
return res.render('invite', { invite });
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/invite/:inviteUuid', async (req, res) => {
|
|
||||||
const { inviteUuid } = req.params;
|
|
||||||
|
|
||||||
res.cookie('inviteUuid', inviteUuid, { httpOnly: true, maxAge: 86400000 });
|
|
||||||
|
|
||||||
let invite;
|
|
||||||
try {
|
|
||||||
invite = await invitesService.getAppInvite(inviteUuid);
|
|
||||||
if (!invite) {
|
|
||||||
return res.status(404).render('error', { message: 'Invite not found.' });
|
|
||||||
}
|
|
||||||
|
|
||||||
if (await invitesService.isAppInviteSpent(inviteUuid)) {
|
|
||||||
return res.status(410).render('invite_spent', { invite });
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
console.error('Error fetching invite:', error);
|
|
||||||
return res.status(500).render('error', { message: 'An error occurred' });
|
|
||||||
}
|
|
||||||
|
|
||||||
return res.render('invite', { invite });
|
|
||||||
});
|
|
||||||
|
|
||||||
router.get(
|
router.get(
|
||||||
'/createProfile',
|
'/createProfile',
|
||||||
redirectIfNotAuthorizedMiddleware,
|
redirectIfNotAuthorizedMiddleware,
|
||||||
|
|
@ -67,6 +45,7 @@ router.get(
|
||||||
'/home',
|
'/home',
|
||||||
redirectIfNotAuthorizedMiddleware,
|
redirectIfNotAuthorizedMiddleware,
|
||||||
attachPublicKeyMiddleware,
|
attachPublicKeyMiddleware,
|
||||||
|
redirectIfMissingProfileDetailsMiddleware,
|
||||||
(req, res) => {
|
(req, res) => {
|
||||||
res.render('home', {});
|
res.render('home', {});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,19 @@ async function setNym(publicKey, nym) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function areProfileDetailsComplete(publicKey) {
|
||||||
|
const isNymSet = await NymSet.findOne({ where: { public_key: publicKey } });
|
||||||
|
const areContactDetailsSet = await ContactDetailsSet.findOne({
|
||||||
|
where: {
|
||||||
|
public_key: publicKey,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
return isNymSet && areContactDetailsSet;
|
||||||
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
setContactDetails,
|
setContactDetails,
|
||||||
setNym,
|
setNym,
|
||||||
|
areProfileDetailsComplete,
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue