mirror of
https://github.com/Mintplex-Labs/anything-llm.git
synced 2024-08-18 11:20:09 +02:00
* Implement total permission overhaul Add explicit permissions on each flex and strict route Patch issues with role escalation and CRUD of users Patch permissions on all routes for coverage Improve middleware to accept role array for clarity * update comments * remove permissions to API-keys for manager. Manager could generate API-key and using high-privelege api-key give themselves admin * update sidebar permissions for multi-user and single user * update options for mobile sidebar
76 lines
2.1 KiB
JavaScript
76 lines
2.1 KiB
JavaScript
const { Telemetry } = require("../../models/telemetry");
|
|
const {
|
|
forwardExtensionRequest,
|
|
} = require("../../utils/files/documentProcessor");
|
|
const {
|
|
flexUserRoleValid,
|
|
ROLES,
|
|
} = require("../../utils/middleware/multiUserProtected");
|
|
const { validatedRequest } = require("../../utils/middleware/validatedRequest");
|
|
|
|
function extensionEndpoints(app) {
|
|
if (!app) return;
|
|
|
|
app.post(
|
|
"/ext/github/branches",
|
|
[validatedRequest, flexUserRoleValid([ROLES.admin, ROLES.manager])],
|
|
async (request, response) => {
|
|
try {
|
|
const responseFromProcessor = await forwardExtensionRequest({
|
|
endpoint: "/ext/github-repo/branches",
|
|
method: "POST",
|
|
body: request.body,
|
|
});
|
|
response.status(200).json(responseFromProcessor);
|
|
} catch (e) {
|
|
console.error(e);
|
|
response.sendStatus(500).end();
|
|
}
|
|
}
|
|
);
|
|
|
|
app.post(
|
|
"/ext/github/repo",
|
|
[validatedRequest, flexUserRoleValid([ROLES.admin, ROLES.manager])],
|
|
async (request, response) => {
|
|
try {
|
|
const responseFromProcessor = await forwardExtensionRequest({
|
|
endpoint: "/ext/github-repo",
|
|
method: "POST",
|
|
body: request.body,
|
|
});
|
|
await Telemetry.sendTelemetry("extension_invoked", {
|
|
type: "github_repo",
|
|
});
|
|
response.status(200).json(responseFromProcessor);
|
|
} catch (e) {
|
|
console.error(e);
|
|
response.sendStatus(500).end();
|
|
}
|
|
}
|
|
);
|
|
|
|
app.post(
|
|
"/ext/youtube/transcript",
|
|
[validatedRequest, flexUserRoleValid([ROLES.admin, ROLES.manager])],
|
|
async (request, response) => {
|
|
try {
|
|
const responseFromProcessor = await forwardExtensionRequest({
|
|
endpoint: "/ext/youtube-transcript",
|
|
method: "POST",
|
|
body: request.body,
|
|
});
|
|
await Telemetry.sendTelemetry("extension_invoked", {
|
|
type: "youtube_transcript",
|
|
});
|
|
response.status(200).json(responseFromProcessor);
|
|
} catch (e) {
|
|
console.error(e);
|
|
response.sendStatus(500).end();
|
|
}
|
|
}
|
|
);
|
|
}
|
|
|
|
module.exports = { extensionEndpoints };
|