2020-02-25 01:31:52 +05:00
|
|
|
const bcrypt = require('bcrypt');
|
2019-08-31 04:07:25 +05:00
|
|
|
|
2023-09-12 01:12:38 +02:00
|
|
|
const buildData = () => {
|
|
|
|
const data = {
|
2019-10-01 04:18:33 +05:00
|
|
|
isAdmin: true,
|
2023-10-17 19:18:19 +02:00
|
|
|
isSso: false,
|
2023-09-12 01:12:38 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
if (process.env.DEFAULT_ADMIN_PASSWORD) {
|
|
|
|
data.password = bcrypt.hashSync(process.env.DEFAULT_ADMIN_PASSWORD, 10);
|
|
|
|
}
|
|
|
|
if (process.env.DEFAULT_ADMIN_NAME) {
|
|
|
|
data.name = process.env.DEFAULT_ADMIN_NAME;
|
|
|
|
}
|
|
|
|
if (process.env.DEFAULT_ADMIN_USERNAME) {
|
|
|
|
data.username = process.env.DEFAULT_ADMIN_USERNAME;
|
|
|
|
}
|
|
|
|
|
|
|
|
return data;
|
|
|
|
};
|
|
|
|
|
|
|
|
exports.seed = async (knex) => {
|
|
|
|
if (!process.env.DEFAULT_ADMIN_EMAIL) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
const data = buildData();
|
|
|
|
|
|
|
|
try {
|
|
|
|
await knex('user_account').insert({
|
|
|
|
...data,
|
|
|
|
email: process.env.DEFAULT_ADMIN_EMAIL,
|
|
|
|
subscribeToOwnCards: false,
|
|
|
|
createdAt: new Date().toISOString(),
|
|
|
|
});
|
|
|
|
} catch (error) {
|
|
|
|
if (Object.keys(data).length === 0) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
await knex('user_account').update(data).where('email', process.env.DEFAULT_ADMIN_EMAIL);
|
|
|
|
}
|
|
|
|
};
|