mirror of
https://github.com/n8n-io/self-hosted-ai-starter-kit.git
synced 2025-11-29 16:43:13 +00:00
55 lines
1.2 KiB
JavaScript
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],
|
|
},
|
|
};
|