Files
self-hosted-ai-starter-kit/n8n/hooks.js
कारतोफ्फेलस्क्रिप्ट™ 0c8e983591 disable UM, and use the instance owner for everything
2024-02-23 16:58:53 +01:00

55 lines
1.2 KiB
JavaScript

/**
* A hook that disables the user management and uses owner for all requests
*/
const { dirname, resolve } = require("path");
const Layer = require("express/lib/router/layer");
const n8nDir = dirname(require.resolve("n8n"));
const jwtAuth = require(resolve(n8nDir, "auth/jwt"));
async function disableUmHook({ app }, config) {
await this.dbCollections.Settings.update(
{ key: "userManagement.isInstanceOwnerSetUp" },
{ value: JSON.stringify(true) }
);
config.set("userManagement.isInstanceOwnerSetUp", true);
const owner = await this.dbCollections.User.findOne({
where: { role: "global:owner" },
});
owner.email = "demo@n8n.io";
owner.firstName = "Demo";
owner.lastName = "McDemoFace";
await this.dbCollections.User.save(owner);
jwtAuth.resolveJwt = () => owner;
const { stack } = app._router;
const index = stack.findIndex((l) => l.name === "cookieParser");
stack.splice(
index + 4,
3,
new Layer(
"/",
{
strict: false,
end: false,
},
async (req, res, next) => {
req.user = owner;
req.cookies = { "n8n-auth": "fake" };
next();
}
)
);
}
module.exports = {
n8n: {
ready: [disableUmHook],
},
};