|
@@ -1,88 +0,0 @@
|
|
|
-var mongoose = require('mongoose');
|
|
|
-var bcrypt = require('bcryptjs');
|
|
|
-
|
|
|
-
|
|
|
-var UserSchema = mongoose.Schema({
|
|
|
- type: { type: Number, default: 1 }, // 报名类型,1代表个人报名,2代表团队报名
|
|
|
- uploadUrl: String, // 上传文件的URL
|
|
|
- idCard: String, // 选手身份证号拼接 报名表
|
|
|
- registrationFormUrl: String, // 报名表URL 报名成功后使用
|
|
|
- user: [{
|
|
|
- name: String, // 选手姓名
|
|
|
- gender: String, // 性别
|
|
|
- ethnicity: String, // 民族
|
|
|
- birthdate: String, // 出生日期
|
|
|
- email: String, // 电子邮箱
|
|
|
- idNumber: Number, // 身份证号码
|
|
|
- group: Number, // 1代表小学组,2代表初中组,3代表高中组, 4代表大学组
|
|
|
- grade: String, // 年级
|
|
|
- school: String, // 学校
|
|
|
- schoolRegion: String, // 学校所在区县
|
|
|
- phone: Number, // 联系电话
|
|
|
- }]
|
|
|
-});
|
|
|
-
|
|
|
-UserSchema.statics.authopenid = function (openid, callback) {
|
|
|
- User.findOne({ googleId: openid })
|
|
|
- .exec(function (err, user) {
|
|
|
- if (err) {
|
|
|
- return callback(err)
|
|
|
- } else if (!user) {
|
|
|
- var err = new Error('User not found.');
|
|
|
- err.status = 401;
|
|
|
- return callback(err);
|
|
|
- }
|
|
|
- return callback(null, user);
|
|
|
- });
|
|
|
-}
|
|
|
-UserSchema.statics.authPassword = function (userId, password, callback) {
|
|
|
- User.findOne({ _id: userId })
|
|
|
- .exec(function (err, user) {
|
|
|
- if (err) {
|
|
|
- return callback(err)
|
|
|
- } else if (!user) {
|
|
|
- var err = new Error('User not found');
|
|
|
- err.status = 401;
|
|
|
- return callback(err);
|
|
|
- }
|
|
|
- bcrypt.compare(password, user.password, function (err, result) {
|
|
|
- if (result === true) {
|
|
|
- return callback(null, user);
|
|
|
- } else {
|
|
|
- return callback();
|
|
|
- }
|
|
|
- })
|
|
|
- })
|
|
|
-}
|
|
|
-UserSchema.pre('update', function (next) {
|
|
|
- var user = this;
|
|
|
- //if update content is active
|
|
|
- if (user._update.$set.password) {
|
|
|
- // user._update.$set.password
|
|
|
- bcrypt.hash(user._update.$set.password, 10, function (err, hash) {
|
|
|
- if (err) {
|
|
|
- return next(err);
|
|
|
- }
|
|
|
- user.update({}, { $set: { password: hash } })
|
|
|
- console.log('from pre: ' + hash)
|
|
|
- next();
|
|
|
- })
|
|
|
- } else {
|
|
|
- next();
|
|
|
- }
|
|
|
-});
|
|
|
-
|
|
|
-//hashing a password before saving it to the database
|
|
|
-UserSchema.pre('save', function (next) {
|
|
|
- var user = this;
|
|
|
- bcrypt.hash(user.password, 10, function (err, hash) {
|
|
|
- if (err) {
|
|
|
- return next(err);
|
|
|
- }
|
|
|
- user.password = hash;
|
|
|
- next();
|
|
|
- })
|
|
|
-});
|
|
|
-
|
|
|
-var User = mongoose.model('User', UserSchema);
|
|
|
-module.exports = User;
|