后台:修改权限用表
This commit is contained in:
+20
-5
@@ -21,6 +21,15 @@ export default class GMUser extends BaseModel {
|
||||
@prop({ required: true })
|
||||
username: string;
|
||||
|
||||
@prop({ required: true })
|
||||
groupId: number;
|
||||
|
||||
@prop({ required: true, type: String })
|
||||
envs: string[];
|
||||
|
||||
@prop({ required: true, default: true })
|
||||
isEnable: boolean;
|
||||
|
||||
@prop({ required: true })
|
||||
password: string;
|
||||
|
||||
@@ -30,6 +39,11 @@ export default class GMUser extends BaseModel {
|
||||
@prop({ required: true })
|
||||
token: string;
|
||||
|
||||
public static async updateInfo(uid: number, params: GMUserUpdate) {
|
||||
let user = await GMUserModel.findOneAndUpdate({ uid }, params, { new: true }).lean();
|
||||
return user;
|
||||
}
|
||||
|
||||
private static async encryptPass(password: string, salt?: string) {
|
||||
if (!salt) {
|
||||
salt = await bcrypt.genSalt(SALT_WORK_FACTOR);
|
||||
@@ -39,23 +53,23 @@ export default class GMUser extends BaseModel {
|
||||
}
|
||||
|
||||
public static async getGmAccountList(lean = true) {
|
||||
const user: GMUserType[] = await GMUserModel.find().select('uid username name token').lean(lean);
|
||||
const user: GMUserType[] = await GMUserModel.find().select('uid username name token envs groupId isEnable').lean(lean);
|
||||
return user;
|
||||
}
|
||||
|
||||
public static async getGmAccountByToken(token: string, lean = true) {
|
||||
// console.log(token)
|
||||
const user: GMUserType = await GMUserModel.findOne({ token }).select('uid username name token').lean(lean);
|
||||
const user: GMUserType = await GMUserModel.findOne({ token }).select('uid username name token envs groupId isEnable').lean(lean);
|
||||
return user;
|
||||
}
|
||||
|
||||
public static async getGmAccountByUid(uid: number, lean = true) {
|
||||
const user: GMUserType = await GMUserModel.findOne({ uid }).select('uid username name token').lean(lean);
|
||||
const user: GMUserType = await GMUserModel.findOne({ uid }).select('uid username name token envs groupId isEnable').lean(lean);
|
||||
return user;
|
||||
}
|
||||
|
||||
public static async getGmAccountByUsername(username: string, lean = true) {
|
||||
const user: GMUserType = await GMUserModel.findOne({ username }).select('uid username name token').lean(lean);
|
||||
const user: GMUserType = await GMUserModel.findOne({ username }).select('uid username name token envs groupId isEnable').lean(lean);
|
||||
return user;
|
||||
}
|
||||
|
||||
@@ -64,7 +78,7 @@ export default class GMUser extends BaseModel {
|
||||
if (user) {
|
||||
let { salt } = user;
|
||||
let { npassword } = await this.encryptPass(password, salt);
|
||||
const checkUser: GMUserType = await GMUserModel.findOneAndUpdate({ username, password: npassword }, { token }).select('uid username name token').lean(lean);
|
||||
const checkUser: GMUserType = await GMUserModel.findOneAndUpdate({ username, password: npassword }, { token }).select('uid username name token envs groupId isEnable').lean(lean);
|
||||
return checkUser;
|
||||
} else {
|
||||
return null
|
||||
@@ -93,3 +107,4 @@ export function loadGMUserModel(connect: mongoose.Connection) {
|
||||
}
|
||||
|
||||
export interface GMUserType extends Pick<DocumentType<GMUser>, keyof GMUser> { };
|
||||
export type GMUserUpdate = Partial<GMUserType>; // 将所有字段变成可选项
|
||||
|
||||
Reference in New Issue
Block a user