69 lines
2.0 KiB
JavaScript
69 lines
2.0 KiB
JavaScript
var mongoose = require('../utils/mongoose').mongoose;
|
|
var crypto = require('crypto');
|
|
|
|
var Schema = mongoose.Schema;
|
|
|
|
// 管理员模型
|
|
var UsersSchema = new Schema({
|
|
username: {type: String,index: true},
|
|
password: {type: String},
|
|
nickname: {type: String},
|
|
description: {type: String,default:'欢迎咨询'},
|
|
time: {type: Date, default: Date.now}
|
|
});
|
|
|
|
var UsersModel = mongoose.model("users", UsersSchema);
|
|
|
|
function login(username, password, callback) {
|
|
var md5 = crypto.createHash('md5');
|
|
password = md5.update(password).digest('hex');
|
|
var condition = {'username': username, 'password': password};
|
|
|
|
UsersModel.findOne(condition, function (err, res) {
|
|
var _err = null;
|
|
if (err) {
|
|
_err = err;
|
|
}
|
|
if (!res) {
|
|
_err = '用户名密码不正确';
|
|
}
|
|
return callback(_err, res);
|
|
})
|
|
}
|
|
|
|
function reset_psw(username, psw_old, psw_new, callback) {
|
|
psw_old = crypto.createHash('md5').update(psw_old).digest('hex');
|
|
UsersModel.find({username: username, password: psw_old}, function (err, info) {
|
|
if (err) {
|
|
return callback(err, null);
|
|
}
|
|
|
|
if (!info || info.length == 0) {
|
|
return callback('原密码不正确', null);
|
|
}
|
|
psw_new = crypto.createHash('md5').update(psw_new).digest('hex');
|
|
UsersModel.findOneAndUpdate({username: username, password: psw_old}, {password: psw_new}, callback);
|
|
});
|
|
}
|
|
|
|
function findByUserName(username){
|
|
return new Promise((resolve ,reject)=>{
|
|
UsersModel.findOne({username},(err,res)=>{
|
|
if(err) reject(err)
|
|
else if(!res) resolve(null)
|
|
else{
|
|
resolve(res);
|
|
}
|
|
});
|
|
})
|
|
}
|
|
function updateInfo(username, nickname, description) {
|
|
return new Promise((resovle, reject) => {
|
|
UsersModel.findOneAndUpdate({username}, {nickname, description}, resovle);
|
|
})
|
|
}
|
|
|
|
exports.updateInfo = updateInfo;
|
|
exports.findByUserName = findByUserName;
|
|
exports.login = login;
|
|
exports.reset_psw = reset_psw; |