Add users table and create default admin
This commit is contained in:
parent
2ba0e81086
commit
356aed0338
19
index.js
19
index.js
|
@ -77,9 +77,26 @@ app.listen(port, (err) => {
|
|||
global.log.info(`Listening on port :${port}`);
|
||||
global.log.debug(`DSN: ${DSN}`);
|
||||
db.query("SELECT * FROM ACL LIMIT 1;")
|
||||
.then(() => {
|
||||
.then(async () => {
|
||||
dbReady = true;
|
||||
global.log.info("Database connection established");
|
||||
|
||||
// Do init stuff
|
||||
await db.query("CREATE TABLE IF NOT EXISTS users ( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(255) UNIQUE, passwordHash VARCHAR(), perms TEXT, createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP );");
|
||||
db.query("SELECT COUNT(*) AS count FROM users;").then(async (res) => {
|
||||
if (res[0].count === 0) {
|
||||
const defaultUser = process.env.DEFAULT_USER || "admin";
|
||||
const defaultPassword = process.env.DEFAULT_PASSWORD || [...Array(32)].map(() => (Math.random().toString(36)+Math.random().toString(32)).charAt(2)).join('');
|
||||
const passwordHash = await global.hashPassword(defaultPassword);
|
||||
db.query("INSERT INTO users (username, passwordHash, perms) VALUES (?, ?, ?);", [defaultUser, passwordHash, JSON.stringify(["*", "login", "acl", "liveMonitor", "eventLog", "auditLog", "manageUsers"])])
|
||||
.then(() => {
|
||||
global.log.info(`Created default admin user '${defaultUser}' with password '${defaultPassword}'`);
|
||||
})
|
||||
.catch(err => {
|
||||
global.log.error(`Cannot create default user: ${err}`);
|
||||
});
|
||||
}
|
||||
})
|
||||
})
|
||||
.catch(err => {
|
||||
global.log.error(`Database connection failed: ${err}`);
|
||||
|
|
|
@ -4,7 +4,7 @@ const router = express.Router();
|
|||
|
||||
// GET /login
|
||||
router.get('/', (req, res) => {
|
||||
if (!req.session.user) return res.redirect('/login');
|
||||
if (!req.session.user) return res.redirect('/login?err=4');
|
||||
return res.render("dashboard", { sessionData: req.session });
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in a new issue