141 lines
3.9 KiB
TypeScript
141 lines
3.9 KiB
TypeScript
import User, { Gender } from "./models/user";
|
|
import Client from "./models/client";
|
|
import { Logging } from "@hibas123/nodelogging";
|
|
import RegCode from "./models/regcodes";
|
|
import * as moment from "moment";
|
|
import Permission from "./models/permissions";
|
|
import { ObjectID } from "bson";
|
|
import DB from "./database";
|
|
import TwoFactor from "./models/twofactor";
|
|
|
|
|
|
import * as speakeasy from "speakeasy";
|
|
import LoginToken from "./models/login_token";
|
|
import Mail from "./models/mail";
|
|
|
|
export default async function TestData() {
|
|
await DB.db.dropDatabase();
|
|
|
|
let mail = await Mail.findOne({ mail: "test@test.de" });
|
|
if (!mail) {
|
|
mail = Mail.new({
|
|
mail: "test@test.de",
|
|
primary: true,
|
|
verified: true
|
|
})
|
|
|
|
await Mail.save(mail);
|
|
}
|
|
|
|
|
|
let u = await User.findOne({ username: "test" });
|
|
if (!u) {
|
|
Logging.log("Adding test user");
|
|
u = User.new({
|
|
username: "test",
|
|
birthday: new Date(),
|
|
gender: Gender.male,
|
|
name: "Test Test",
|
|
password: "125d6d03b32c84d492747f79cf0bf6e179d287f341384eb5d6d3197525ad6be8e6df0116032935698f99a09e265073d1d6c32c274591bf1d0a20ad67cba921bc",
|
|
salt: "test",
|
|
admin: true,
|
|
phones: [
|
|
{ phone: "+4915962855955", primary: true, verified: true },
|
|
{ phone: "+4915962855932", primary: false, verified: false }
|
|
],
|
|
mails: [mail._id]
|
|
})
|
|
await User.save(u);
|
|
}
|
|
|
|
let c = await Client.findOne({ client_id: "test001" });
|
|
if (!c) {
|
|
Logging.log("Adding test client")
|
|
c = Client.new({
|
|
client_id: "test001",
|
|
client_secret: "test001",
|
|
internal: true,
|
|
maintainer: u._id,
|
|
name: "Test Client",
|
|
website: "http://example.com",
|
|
redirect_url: "http://example.com"
|
|
})
|
|
await Client.save(c);
|
|
}
|
|
|
|
let perm = await Permission.findOne({ id: 0 });
|
|
if (!perm) {
|
|
Logging.log("Adding test permission")
|
|
perm = Permission.new({
|
|
_id: new ObjectID("507f1f77bcf86cd799439011"),
|
|
name: "TestPerm",
|
|
description: "Permission just for testing purposes",
|
|
client: c._id
|
|
})
|
|
Permission.save(perm);
|
|
}
|
|
|
|
let r = await RegCode.findOne({ token: "test" });
|
|
if (!r) {
|
|
Logging.log("Adding test reg_code")
|
|
r = RegCode.new({
|
|
token: "test",
|
|
valid: true,
|
|
validTill: moment().add("1", "year").toDate()
|
|
})
|
|
await RegCode.save(r);
|
|
}
|
|
|
|
let t = await TwoFactor.findOne({ user: u._id, type: 0 })
|
|
if (!t) {
|
|
t = TwoFactor.new({
|
|
user: u._id,
|
|
type: 0,
|
|
valid: true,
|
|
data: "IIRW2P2UJRDDO2LDIRYW4LSREZLWMOKDNBJES2LLHRREK3R6KZJQ",
|
|
expires: null
|
|
})
|
|
TwoFactor.save(t);
|
|
}
|
|
|
|
let login_token = await LoginToken.findOne({ token: "test01" });
|
|
if (login_token)
|
|
await LoginToken.delete(login_token);
|
|
|
|
login_token = LoginToken.new({
|
|
browser: "DEMO",
|
|
ip: "10.0.0.1",
|
|
special: false,
|
|
token: "test01",
|
|
valid: true,
|
|
validTill: moment().add("10", "years").toDate(),
|
|
user: u._id,
|
|
validated: true
|
|
});
|
|
await LoginToken.save(login_token);
|
|
|
|
let special_token = await LoginToken.findOne({ token: "test02" });
|
|
if (special_token)
|
|
await LoginToken.delete(special_token);
|
|
|
|
special_token = LoginToken.new({
|
|
browser: "DEMO",
|
|
ip: "10.0.0.1",
|
|
special: true,
|
|
token: "test02",
|
|
valid: true,
|
|
validTill: moment().add("10", "years").toDate(),
|
|
user: u._id,
|
|
validated: true
|
|
});
|
|
await LoginToken.save(special_token);
|
|
|
|
|
|
// setInterval(() => {
|
|
// let code = speakeasy.totp({
|
|
// secret: t.data,
|
|
// encoding: "base32"
|
|
// })
|
|
// Logging.debug("OTC Code is:", code);
|
|
// }, 1000)
|
|
}
|