Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
module.exports.hooks.removeVerification = (ifReturnTokens) => (hook) => {
utils.checkContext(hook, 'after');
const user = (hook.result || {});
if (!('isVerified' in user) && hook.method === 'create') {
/* eslint-disable no-console */
console.warn('Property isVerified not found in user properties. (removeVerification)');
console.warn('Have you added verify-reset\'s properties to your model? (Refer to README.md)');
console.warn('Have you added the addVerification hook on users::create?');
/* eslint-enable */
}
if (hook.params.provider && user) { // noop if initiated by server
delete user.verifyExpires;
delete user.resetExpires;
if (!ifReturnTokens) {
delete user.verifyToken;
delete user.verifyShortToken;
return function (hook) {
utils.checkContext(hook, 'after');
var user = hook.result || {};
if (!('isVerified' in user) && hook.method === 'create') {
/* eslint-disable no-console */
console.warn('Property isVerified not found in user properties. (removeVerification)');
console.warn('Have you added verify-reset\'s properties to your model? (Refer to README.md)');
console.warn('Have you added the addVerification hook on users::create?');
/* eslint-enable */
}
if (hook.params.provider && user) {
// noop if initiated by server
delete user.verifyExpires;
delete user.resetExpires;
if (!ifReturnTokens) {
delete user.verifyToken;
return function validatorInner(hook, next) {
utils.checkContext(hook, 'before', ['create', 'update', 'patch'], 'validate-joi');
const values = utils.getItems(hook);
Joi.validate(values, joiSchema, joiOptions,
function (joiErr, convertedValues) {
const formErrors = translator(joiErr);
if (formErrors) {
// Hacky, but how else without a custom assert?
const msg = ifTest ? JSON.stringify(formErrors) : 'Invalid data';
throw new errors.BadRequest(msg, { errors: formErrors });
}
if (joiOptions.convert === true) {
utils.replaceItems(hook, convertedValues);
}
next(null, hook);
}
return function (hook) {
utils.checkContext(hook, 'before', 'create');
var ourOptions = Object.assign({}, options, options1);
if (options1 && options1.len) {
ourOptions.longTokenLen = options1.len; // backward compatibility
}
return Promise.all([getLongToken(ourOptions.longTokenLen), getShortToken(ourOptions.shortTokenLen, ourOptions.shortTokenDigits)]).then(function (_ref11) {
var _ref12 = _slicedToArray(_ref11, 2),
longToken = _ref12[0],
shortToken = _ref12[1];
hook.data.isVerified = false;
hook.data.verifyExpires = Date.now() + ourOptions.delay;
hook.data.verifyToken = longToken;
hook.data.verifyShortToken = shortToken;
module.exports.hooks.addVerification = (options1) => (hook) => {
utils.checkContext(hook, 'before', 'create');
const ourOptions = Object.assign({}, options, options1);
if (options1 && options1.len) {
ourOptions.longTokenLen = options1.len; // backward compatibility
}
return Promise.all([
getLongToken(ourOptions.longTokenLen),
getShortToken(ourOptions.shortTokenLen, ourOptions.shortTokenDigits)
])
.then(([longToken, shortToken]) => {
hook.data.isVerified = false;
hook.data.verifyExpires = Date.now() + ourOptions.delay;
hook.data.verifyToken = longToken;
hook.data.verifyShortToken = shortToken;
return function (hook) {
utils.checkContext(hook, 'before');
if (!hook.params.user || !hook.params.user.isVerified) {
throw new errors.BadRequest('User\'s email is not yet verified.');
}
};
};
module.exports.hooks.restrictToVerified = () => (hook) => {
utils.checkContext(hook, 'before');
if (!hook.params.user || !hook.params.user.isVerified) {
throw new errors.BadRequest('User\'s email is not yet verified.');
}
};