feat: Use environment variables for default admin configuration
parent
a34d8e9753
commit
91bc889fed
@ -1,12 +1,42 @@
|
|||||||
const bcrypt = require('bcrypt');
|
const bcrypt = require('bcrypt');
|
||||||
|
|
||||||
exports.seed = (knex) =>
|
const buildData = () => {
|
||||||
knex('user_account').insert({
|
const data = {
|
||||||
email: 'demo@demo.demo',
|
|
||||||
password: bcrypt.hashSync('demo', 10),
|
|
||||||
isAdmin: true,
|
isAdmin: true,
|
||||||
name: 'Demo Demo',
|
};
|
||||||
username: 'demo',
|
|
||||||
subscribeToOwnCards: false,
|
if (process.env.DEFAULT_ADMIN_PASSWORD) {
|
||||||
createdAt: new Date().toISOString(),
|
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);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|||||||
Loading…
Reference in New Issue