Adding user encryption key

This commit is contained in:
Fabian Stamm
2019-01-21 11:24:20 +01:00
parent 26798df304
commit 0612e25882
4 changed files with 58 additions and 2 deletions

View File

@ -2,6 +2,7 @@ import DB from "../database";
import { ModelDataBase } from "@hibas123/safe_mongo/lib/model";
import { ObjectID } from "mongodb";
import { v4 } from "uuid";
import { randomString } from "../helper/random";
export enum Gender {
none,
@ -28,6 +29,7 @@ export interface IUser extends ModelDataBase {
mails: ObjectID[];
phones: { phone: string, verified: boolean, primary: boolean }[];
twofactor: { token: string, valid: boolean, type: TokenTypes }[];
encryption_key: string;
}
const User = DB.addModel<IUser>({
@ -63,6 +65,41 @@ const User = DB.addModel<IUser>({
}
}
}
}, {
migration: (e: IUser) => { e.encryption_key = randomString(64) },
schema: {
uid: { type: String, default: () => v4() },
username: { type: String },
name: { type: String },
birthday: { type: Date, optional: true },
gender: { type: Number },
admin: { type: Boolean },
password: { type: String },
salt: { type: String },
mails: { type: Array, default: () => [] },
phones: {
array: true,
model: true,
type: {
phone: { type: String },
verified: { type: Boolean },
primary: { type: Boolean }
}
},
twofactor: {
array: true,
model: true,
type: {
token: { type: String },
valid: { type: Boolean },
type: { type: Number }
}
},
encryption_key: {
type: String,
default: () => randomString(64)
}
}
}]
})