Implemented default admin account

This commit is contained in:
2021-02-11 13:18:18 +11:00
parent 01f17360b9
commit 7759a1cd40
7 changed files with 36 additions and 34 deletions
+2 -2
View File
@@ -56,8 +56,8 @@ const route = async (req, res) => {
};
const validateDetails = async (fields) => {
//basic formatting
if (!validateEmail(fields.email)) {
//basic formatting (with an exception for the default admin account)
if (!validateEmail(fields.email) && fields.email != `admin@${process.env.WEB_ADDRESS}`) {
return 'invalid email';
}
+23
View File
@@ -16,4 +16,27 @@ router.get('/banned', require('./banned'));
router.post('/ban', require('./ban'));
router.post('/unban', require('./unban'));
//DOCS: ensure that there is at least one administration account
const bcrypt = require('bcryptjs');
const { accounts } = require('../database/models');
(async () => {
const admin = await accounts.findOne({
where: {
privilege: 'administrator'
}
});
if (admin == null) {
await accounts.create({
privilege: 'administrator',
email: `admin@${process.env.WEB_ADDRESS}`,
username: `admin`,
hash: await bcrypt.hash('password', await bcrypt.genSalt(11))
});
console.log(`Created default admin account (email: admin@${process.env.WEB_ADDRESS}; password: password)`);
}
})();
module.exports = router;