atsid/generator-ats-node-webapp

View on GitHub
generators/persistence-mongodb/templates/server/persistence/models/User/User.handlers/encrypt_password_on_save.js

Summary

Maintainability
A
0 mins
Test Coverage
const passwordChecker = require('app/components/password_checker');
const log = require('debug')('app:models:user:encrypt_on_save');

function encryptPassword(next) {
  const user = this;
  const isPasswordModified = user.isModified('password');
  const checkForPasswordChange = user.password && isPasswordModified;

  if (!checkForPasswordChange) {
    next();
  } else {
    log('password change detected for ', user.email || user.name);
    return Promise.resolve(true)
      .then(() => passwordChecker.encryptPassword(user.password))
      .then((hash) => user.password = hash)
      .then(next)
      .catch(next);
  }
}
module.exports = encryptPassword;