|
@@ -1,6 +1,7 @@
|
|
import express from "express";
|
|
import express from "express";
|
|
import { Permission } from '../database/models.js';
|
|
import { Permission } from '../database/models.js';
|
|
export const router = express.Router();
|
|
export const router = express.Router();
|
|
|
|
+const no_auth = process.env.NO_AUTH || false;
|
|
|
|
|
|
// Controllers
|
|
// Controllers
|
|
import { Login, submitLogin, Logout } from "../controllers/login.js";
|
|
import { Login, submitLogin, Logout } from "../controllers/login.js";
|
|
@@ -21,17 +22,20 @@ import { Uninstall } from "../utils/uninstall.js"
|
|
|
|
|
|
// Permission Middleware
|
|
// Permission Middleware
|
|
const adminOnly = async (req, res, next) => {
|
|
const adminOnly = async (req, res, next) => {
|
|
- if (req.session.role == 'admin') { next(); }
|
|
|
|
|
|
+ if (req.session.role == 'admin') { next(); }
|
|
|
|
+ else if (no_auth && req.connection.remoteAddress == '::ffff:127.0.0.1') { next(); }
|
|
else { res.redirect('/dashboard'); }
|
|
else { res.redirect('/dashboard'); }
|
|
}
|
|
}
|
|
|
|
|
|
const sessionCheck = async (req, res, next) => {
|
|
const sessionCheck = async (req, res, next) => {
|
|
if (req.session.user) { next(); }
|
|
if (req.session.user) { next(); }
|
|
|
|
+ else if (no_auth && req.connection.remoteAddress == '::ffff:127.0.0.1') { next(); }
|
|
else { res.redirect('/login'); }
|
|
else { res.redirect('/login'); }
|
|
}
|
|
}
|
|
|
|
|
|
const permissionCheck = async (req, res, next) => {
|
|
const permissionCheck = async (req, res, next) => {
|
|
if (req.session.role == 'admin') { next(); return; }
|
|
if (req.session.role == 'admin') { next(); return; }
|
|
|
|
+ else if (no_auth && req.connection.remoteAddress == '::ffff:127.0.0.1') { next(); }
|
|
let user = req.session.user;
|
|
let user = req.session.user;
|
|
let action = req.path.split("/")[2];
|
|
let action = req.path.split("/")[2];
|
|
let trigger = req.header('hx-trigger-name');
|
|
let trigger = req.header('hx-trigger-name');
|