diff --git a/backend/core/core.js b/backend/core/core.js
index 4c790b7..dce8d11 100644
--- a/backend/core/core.js
+++ b/backend/core/core.js
@@ -12,13 +12,11 @@ const s3 = new S3Client({
region: process.env.S3_REGION,
endpoint: process.env.S3_ENDPOINT,
});
+const settings = require("../settings");
-const persistent_setting = require("node-persist");
-persistent_setting.init({ dir: "data/" });
-
-async function registerUser(username, password) {
- const new_user = await prisma.user.create({ data: { username: username, password: password } });
- await persistent_setting.setItem("SETUP_COMPLETE", true);
+async function registerUser(username, password, options) {
+ const new_user = await prisma.user.create({ data: { username: username, password: password, ...options } });
+ await settings.setSetupComplete();
if (new_user) return { success: true, message: `Successfully created ${new_user.username}` };
}
diff --git a/backend/core/internal_api.js b/backend/core/internal_api.js
index ae5cf82..ea3b2d7 100644
--- a/backend/core/internal_api.js
+++ b/backend/core/internal_api.js
@@ -7,7 +7,7 @@ async function registerUser(username, password) {
const form_valid = await validate.userRegistration(username, password); // Check form for errors
const is_setup_complete = await settings.setupComplete();
- let role = is_setup_complete ? "ADMIN" : null;
+ let role = is_setup_complete ? undefined : "ADMIN";
// Register the user in the database
if (registration_allowed && form_valid.success) return await core.registerUser(username, password, { role: role });
diff --git a/backend/page_scripts.js b/backend/page_scripts.js
index e16b32c..032db5c 100644
--- a/backend/page_scripts.js
+++ b/backend/page_scripts.js
@@ -7,21 +7,18 @@ async function index(request, response) {
const is_setup_complete = (await settings.setupComplete()) || false;
if (!is_setup_complete) return response.redirect("/register");
- response.render("index.ejs", { website_name: process.env.WEBSITE_NAME });
+ response.render("index.ejs", { user: request.session.user || null, website_name: process.env.WEBSITE_NAME });
}
function register(request, response) {
- response.render("register.ejs", { website_name: process.env.WEBSITE_NAME });
+ response.render("register.ejs", { user: request.session.user || null, website_name: process.env.WEBSITE_NAME });
}
function login(request, response) {
- response.render("login.ejs", { website_name: process.env.WEBSITE_NAME });
+ response.render("login.ejs", { user: request.session.user || null, website_name: process.env.WEBSITE_NAME });
}
async function admin(request, response) {
const reg_allowed = await settings.userRegistrationAllowed();
- response.render("admin.ejs", {
- website_name: process.env.WEBSITE_NAME,
- settings: { registration_enabled: reg_allowed },
- });
+ response.render("admin.ejs", { user: request.session.user || null, website_name: process.env.WEBSITE_NAME, settings: { registration_enabled: reg_allowed } });
}
async function registerPost(request, response) {
diff --git a/backend/settings.js b/backend/settings.js
index e4d77a7..04d63bf 100644
--- a/backend/settings.js
+++ b/backend/settings.js
@@ -2,8 +2,13 @@ const persistent_setting = require("node-persist");
persistent_setting.init({ dir: "data/" });
const setupComplete = async () => (await persistent_setting.getItem("SETUP_COMPLETE")) || false;
-const userRegistrationAllowed = async () => (await persistent_setting.getItem("REGISTRATION_ALLOWED")) == "true";
-
+const userRegistrationAllowed = async () => {
+ const setting = await persistent_setting.getItem("REGISTRATION_ALLOWED");
+ if (typeof setting == "undefined") return true;
+ console.log(setting);
+ return setting == "true";
+};
+const setSetupComplete = async () => await persistent_setting.setItem("SETUP_COMPLETE", "true");
const setUserRegistrationAllowed = (new_value) => persistent_setting.setItem("REGISTRATION_ALLOWED", String(new_value));
-module.exports = { setupComplete, userRegistrationAllowed, setUserRegistrationAllowed };
+module.exports = { setupComplete, userRegistrationAllowed, setSetupComplete, setUserRegistrationAllowed };
diff --git a/frontend/views/partials/header.ejs b/frontend/views/partials/header.ejs
index b836f18..6f26d97 100644
--- a/frontend/views/partials/header.ejs
+++ b/frontend/views/partials/header.ejs
@@ -8,8 +8,14 @@
Blog
-
- Projects
+ <% if (user) { %>
+
+ Profile
+ <% } else {%>
+
+ Login
+
+ <% } %>