后台添加修改密码、编辑、记录等功能

This commit is contained in:
luying
2020-09-22 15:14:00 +08:00
parent 780562979e
commit 9f57e52445
8 changed files with 113 additions and 12 deletions
+5
View File
@@ -32,6 +32,11 @@ export default class GMGroup extends BaseModel {
return result;
}
public static async editGroup(groupId: number, group: string, name: string, desc: string, lean = true) {
const result = await GMGroupModel.findOneAndUpdate({ id: groupId }, {$set: {group, desc, name}}).select('uid username name').lean(lean);
return result;
}
public static async getAllGroup(lean = true) {
const list = await GMGroupModel.find().lean(lean);
return list;
+31
View File
@@ -0,0 +1,31 @@
import BaseModel from './BaseModel';
import { index, getModelForClass, prop } from '@typegoose/typegoose';
/**
* GM用户组接口
*/
@index({ uid: 1 })
@index({ api: 1 })
export default class GMRecord extends BaseModel {
@prop({ required: true })
uid: number;
@prop({ required: true })
api: string;
@prop({ required: true })
body: string;
@prop({ required: true })
result: string;
public static async createRecord(uid: number, api: string, body: string, result: string) {
const r = await GMRecordModel.insertMany({uid, api, body, result});
return r;
}
}
export const GMRecordModel = getModelForClass(GMRecord);
+7 -6
View File
@@ -31,11 +31,9 @@ export default class GMUser extends BaseModel {
token: string;
private static async encryptPass(password: string, salt?: string) {
console.log(salt)
if(!salt) {
salt = await bcrypt.genSalt(SALT_WORK_FACTOR);
}
console.log(salt)
let npassword = await bcrypt.hash(password, salt);
return {npassword, salt};
}
@@ -60,14 +58,12 @@ export default class GMUser extends BaseModel {
return user;
}
public static async login(username: string, password: string, lean = true) {
public static async login(username: string, password: string, token: string, lean = true) {
const user = await GMUserModel.findOne({username}).select('salt').lean();
if(user) {
let { salt } = user;
console.log(salt)
let { npassword } = await this.encryptPass(password, salt);
console.log(username, npassword)
const checkUser = await GMUserModel.findOne({username, password: npassword}).select('uid username name token').lean(lean);
const checkUser = await GMUserModel.findOneAndUpdate({username, password: npassword}, { token }).select('uid username name token').lean(lean);
return checkUser;
} else {
return null
@@ -81,6 +77,11 @@ export default class GMUser extends BaseModel {
return user;
}
public static async changePass(uid: number, password: string, lean = true) {
let r = await this.encryptPass(password);
const user = await GMUserModel.findOneAndUpdate({uid}, { password: r.npassword, salt: r.salt}).select('uid username name').lean(lean);
return user;
}
}
export const GMUserModel = getModelForClass(GMUser);