mirror of
https://github.com/plankanban/planka.git
synced 2025-07-18 20:59:44 +02:00
40 lines
915 B
JavaScript
40 lines
915 B
JavaScript
const bcrypt = require('bcrypt');
|
|
|
|
const buildData = () => {
|
|
const data = {
|
|
isAdmin: true,
|
|
isSso: false,
|
|
};
|
|
|
|
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.toLowerCase();
|
|
}
|
|
|
|
return data;
|
|
};
|
|
|
|
exports.seed = async (knex) => {
|
|
if (!process.env.DEFAULT_ADMIN_EMAIL) {
|
|
return;
|
|
}
|
|
|
|
const email = process.env.DEFAULT_ADMIN_EMAIL.toLowerCase();
|
|
const data = buildData();
|
|
|
|
try {
|
|
await knex('user_account').insert({
|
|
...data,
|
|
email,
|
|
subscribeToOwnCards: false,
|
|
createdAt: new Date().toISOString(),
|
|
});
|
|
} catch (error) {
|
|
await knex('user_account').update(data).where('email', email);
|
|
}
|
|
};
|