Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2016
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var mongoose    = require("mongoose");
  2. var Schema      = mongoose.Schema;
  3. var constants   = require("../config/constants");
  4. var bcrypt      = require("bcrypt-nodejs");
  5.  
  6.  
  7. var UserSchema = new Schema({
  8.     name: String,
  9.     email: String,
  10.     password: String,
  11.     authorization:
  12.     {
  13.         type: Number,
  14.         default: constants.authorization.default
  15.     }
  16. });
  17.  
  18. UserSchema.pre("save", (next) => {
  19.     var user = this;
  20.  
  21.     /**
  22.      * Only hash the password when it's been modified or if new.
  23.      */
  24.     if (!user.isModified("password"))
  25.     {
  26.         return next();
  27.     }
  28.  
  29.     /**
  30.      * hash password
  31.      */
  32.     bcrypt.hash(user.password, null, null, (err, hash) => {
  33.         if (err)
  34.         {
  35.             return next(err);
  36.         }
  37.  
  38.         user.password = hash;
  39.         return next();
  40.     });
  41. });
  42.  
  43. UserSchema.methods.verifyPassword = (reqPassword, callback) => {
  44.     bcrypt.compare(reqPassword, this.password, (err, match) => {
  45.         var e = null;
  46.         var m = match;
  47.  
  48.         if (err)
  49.         {
  50.             e = err;
  51.             m = false;
  52.         }
  53.  
  54.         return callback(e, m);
  55.     });
  56. };
  57.  
  58.  
  59.  
  60. module.exports = mongoose.model("User", UserSchema);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement