Website init improvements
parent
e60f58a975
commit
f762f817d5
|
@ -12,13 +12,11 @@ const s3 = new S3Client({
|
||||||
region: process.env.S3_REGION,
|
region: process.env.S3_REGION,
|
||||||
endpoint: process.env.S3_ENDPOINT,
|
endpoint: process.env.S3_ENDPOINT,
|
||||||
});
|
});
|
||||||
|
const settings = require("../settings");
|
||||||
|
|
||||||
const persistent_setting = require("node-persist");
|
async function registerUser(username, password, options) {
|
||||||
persistent_setting.init({ dir: "data/" });
|
const new_user = await prisma.user.create({ data: { username: username, password: password, ...options } });
|
||||||
|
await settings.setSetupComplete();
|
||||||
async function registerUser(username, password) {
|
|
||||||
const new_user = await prisma.user.create({ data: { username: username, password: password } });
|
|
||||||
await persistent_setting.setItem("SETUP_COMPLETE", true);
|
|
||||||
if (new_user) return { success: true, message: `Successfully created ${new_user.username}` };
|
if (new_user) return { success: true, message: `Successfully created ${new_user.username}` };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ async function registerUser(username, password) {
|
||||||
const form_valid = await validate.userRegistration(username, password); // Check form for errors
|
const form_valid = await validate.userRegistration(username, password); // Check form for errors
|
||||||
|
|
||||||
const is_setup_complete = await settings.setupComplete();
|
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
|
// Register the user in the database
|
||||||
if (registration_allowed && form_valid.success) return await core.registerUser(username, password, { role: role });
|
if (registration_allowed && form_valid.success) return await core.registerUser(username, password, { role: role });
|
||||||
|
|
|
@ -7,21 +7,18 @@ async function index(request, response) {
|
||||||
const is_setup_complete = (await settings.setupComplete()) || false;
|
const is_setup_complete = (await settings.setupComplete()) || false;
|
||||||
if (!is_setup_complete) return response.redirect("/register");
|
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) {
|
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) {
|
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) {
|
async function admin(request, response) {
|
||||||
const reg_allowed = await settings.userRegistrationAllowed();
|
const reg_allowed = await settings.userRegistrationAllowed();
|
||||||
response.render("admin.ejs", {
|
response.render("admin.ejs", { user: request.session.user || null, website_name: process.env.WEBSITE_NAME, settings: { registration_enabled: reg_allowed } });
|
||||||
website_name: process.env.WEBSITE_NAME,
|
|
||||||
settings: { registration_enabled: reg_allowed },
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function registerPost(request, response) {
|
async function registerPost(request, response) {
|
||||||
|
|
|
@ -2,8 +2,13 @@ const persistent_setting = require("node-persist");
|
||||||
persistent_setting.init({ dir: "data/" });
|
persistent_setting.init({ dir: "data/" });
|
||||||
|
|
||||||
const setupComplete = async () => (await persistent_setting.getItem("SETUP_COMPLETE")) || false;
|
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));
|
const setUserRegistrationAllowed = (new_value) => persistent_setting.setItem("REGISTRATION_ALLOWED", String(new_value));
|
||||||
|
|
||||||
module.exports = { setupComplete, userRegistrationAllowed, setUserRegistrationAllowed };
|
module.exports = { setupComplete, userRegistrationAllowed, setSetupComplete, setUserRegistrationAllowed };
|
||||||
|
|
|
@ -8,8 +8,14 @@
|
||||||
<a class="nav-button" href="/blog">
|
<a class="nav-button" href="/blog">
|
||||||
<div>Blog</div>
|
<div>Blog</div>
|
||||||
</a>
|
</a>
|
||||||
<a class="nav-button" href="/projects">
|
<% if (user) { %>
|
||||||
<div>Projects</div>
|
<a class="nav-button" href="/author/<%= user.username %>">
|
||||||
|
<div>Profile</div>
|
||||||
</a>
|
</a>
|
||||||
|
<% } else {%>
|
||||||
|
<a class="nav-button" href="/login">
|
||||||
|
<div>Login</div>
|
||||||
|
</a>
|
||||||
|
<% } %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue